У меня есть два ComboBox, A и B, каждый из которых связан с наблюдаемой коллекцией. У каждого есть триггер SelectionChanged, который предназначен для обнаружения, когда пользователь меняет выбор. Триггер передает выбор команде.
Коллекции реализуют INotifyPropertyChanged тем, что в Setter каждого из них запускается событие NotifyPropertyChanged. Это необходимо (в подходе MVVM), чтобы уведомить пользовательский интерфейс (представление) об изменении содержимого ComboBox.
Два поля со списком взаимозависимы — изменение выбора в A приводит к повторному заполнению B новыми элементами.
Теперь проблема заключается в том, что триггер SelectionChanged B срабатывает в ответ на повторное заполнение его коллекции (а также изменение выбора пользователем). Из-за сложности кода в Command это огромная трата ресурсов.
Теоретически я мог бы остановить это, не вызывая событие NotifyPropertyChanged, когда установлена коллекция B (потому что, глядя на стек вызовов, кажется, что это то, что вызывает срабатывание триггера SelectionChanged), однако подход MVVM зависит от этого, чтобы сохранить пользовательский интерфейс обновленный.
Какие-либо предложения?