forked from amkovkov/GranuSightSoftware2
fix: possible edge case (or kind of)
sample calibration view model move brand combobox editing on database changing to uI thread
This commit is contained in:
@@ -231,6 +231,11 @@ public partial class SampleCalibrationViewModel : ViewModelBase
|
||||
BrandComboBoxItems = new ObservableCollection<BrandComboBoxItemViewModel>(_context.BrandRecords.Select(r => new BrandComboBoxItemViewModel(r.Id, r.BrandName, r.MixtureName)));
|
||||
// Подписываемся на изменения базы данных для отслеживания изменений списка марок
|
||||
_context.ChangeTracker.StateChanged += (_, ea) =>
|
||||
{
|
||||
// Обновляем данные в интерфейсе
|
||||
// Dispatcher.UIThread.Invoke нужен потому-что этот метод может (и скорее всего будет) вызван в другом потоке,
|
||||
// а изменения данных в интерфейсе могут быть вызваны только из потока в котором интерфейс был создан
|
||||
_ = Dispatcher.UIThread.InvokeAsync(() =>
|
||||
{
|
||||
// Если запись не интересует нас, то ничего не делаем
|
||||
if (ea.Entry.Entity is not BrandRecord brandRecord)
|
||||
@@ -276,6 +281,7 @@ public partial class SampleCalibrationViewModel : ViewModelBase
|
||||
editedComboBoxItem.BrandName = brandRecord.BrandName;
|
||||
editedComboBoxItem.MixtureName = brandRecord.MixtureName;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
// Подписываемся на изменения свойств для обновления CanScroll
|
||||
|
||||
Reference in New Issue
Block a user