В программе, написанной на C # и Xamarin Forms (но этот вопрос больше основан на MVVM), у меня есть ObservableCollection элементов:
ObserbableCollection<Item> Items { get; set; }
Когда эта коллекция изменяется (элемент добавляется или удаляется в / из коллекции), мне нужно уведомить другие свойства и команды, потому что все они привязаны к элементам управления на экране XAML (в основном кнопки и метки).
Единственное решение, которое я нашел, было примерно таким:
Items.CollectionChanged += (sender, args) =>
{
((Command)OnHoldCommand).ChangeCanExecute();
((Command)CancelSaleCommand).ChangeCanExecute();
((Command)ValidateTakeAwayCommand).ChangeCanExecute();
((Command)ValidateEatInCommand).ChangeCanExecute();
RaisePropertyChanged(() => TotalItems);
RaisePropertyChanged(() => TotalAmount);
};
Как вы думаете, есть другое решение? Может быть, используя Fody.PropertyChanged?
Я использую FreshMvvm как фреймворк Mvvm поверх Xamarin Forms.