Как сделать элемент управления в представлении, чтобы сделать операцию с помощью триггера ViewModel? - PullRequest
0 голосов
/ 04 января 2012

У меня есть представление, содержащее пользовательский элемент управления.Я хочу, чтобы модель представления уведомляла пользовательский элемент управления о необходимости какого-либо действия (обновляла его данные).

Я могу изменить некоторое свойство bool в моей виртуальной машине и связать его с пользовательским элементом управления, чтобы он вызывал, но я думаю, что это небольшое злоупотребление имуществом.

Я чувствую, что что-то упустил, и не могу найти решение.Я буду признателен за любые комментарии.

Мое решение: я собираюсь решить проблему, зарегистрировав событие коллекции, измененное в моем UserControl, так как я привязываю к этому элементу управления представление коллекции через CollectionViewSource.Моя первоначальная проблема заключалась в том, чтобы сделать элемент управления диаграммой внутри UserControl, чтобы он обновлялся при фильтрации источника данных.После операции фильтрации с ВМ произойдет событие, и я создам диаграмму для обновления либо в коде UserContol, стоящем за

Ответы [ 2 ]

1 голос
/ 04 января 2012

Если вы правильно связали свой UserControl, вам не нужно обновлять данные вручную, так как WPF автоматически обновит интерфейс, когда INotifiyPropertyChanged вызовет

Тем не менее, если вы хотите отправить сообщение из ViewModel в View, я обычно использую какую-либо систему обмена сообщениями, чтобы разделить Views и ViewModel. Я использовал и рекомендовал бы MVVM Light Messenger или EventSggregator от Microsoft Prism

Любая система позволит вашей ViewModel транслировать сообщение, и ваш View может подписаться на получение этих сообщений и обработку их по мере необходимости.

1 голос
/ 04 января 2012

Поскольку вы указали, что решение с тегами MVVM будет довольно простым - просто привяжите элемент управления к данным, выставив элементы данных / что угодно с помощью ViewModel, чтобы любые обновления данных автоматически отправлялись в View через привязки, если вы предоставите INotifyPropertyChanged /INotifyCollectionChanged от ViewModel.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...