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)));
|
BrandComboBoxItems = new ObservableCollection<BrandComboBoxItemViewModel>(_context.BrandRecords.Select(r => new BrandComboBoxItemViewModel(r.Id, r.BrandName, r.MixtureName)));
|
||||||
// Подписываемся на изменения базы данных для отслеживания изменений списка марок
|
// Подписываемся на изменения базы данных для отслеживания изменений списка марок
|
||||||
_context.ChangeTracker.StateChanged += (_, ea) =>
|
_context.ChangeTracker.StateChanged += (_, ea) =>
|
||||||
|
{
|
||||||
|
// Обновляем данные в интерфейсе
|
||||||
|
// Dispatcher.UIThread.Invoke нужен потому-что этот метод может (и скорее всего будет) вызван в другом потоке,
|
||||||
|
// а изменения данных в интерфейсе могут быть вызваны только из потока в котором интерфейс был создан
|
||||||
|
_ = Dispatcher.UIThread.InvokeAsync(() =>
|
||||||
{
|
{
|
||||||
// Если запись не интересует нас, то ничего не делаем
|
// Если запись не интересует нас, то ничего не делаем
|
||||||
if (ea.Entry.Entity is not BrandRecord brandRecord)
|
if (ea.Entry.Entity is not BrandRecord brandRecord)
|
||||||
@@ -276,6 +281,7 @@ public partial class SampleCalibrationViewModel : ViewModelBase
|
|||||||
editedComboBoxItem.BrandName = brandRecord.BrandName;
|
editedComboBoxItem.BrandName = brandRecord.BrandName;
|
||||||
editedComboBoxItem.MixtureName = brandRecord.MixtureName;
|
editedComboBoxItem.MixtureName = brandRecord.MixtureName;
|
||||||
}
|
}
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
// Подписываемся на изменения свойств для обновления CanScroll
|
// Подписываемся на изменения свойств для обновления CanScroll
|
||||||
|
|||||||
Reference in New Issue
Block a user