Использование команд для уведомления об изменении коллекции - PullRequest
0 голосов
/ 25 июня 2010

Мне было интересно, смогу ли я справиться, когда коллекция изменится, и после этого отобразить сообщение пользователю.

Поскольку я использую MVVM, у меня нет никаких ссылок на модель внутрипросмотреть проект, поэтому я не смог сделать

MyCollection col = InstanceOfViewModel.Read();

Так как View ничего не знает о «MyCollection», и я не хочу тестировать сам метод внутри if, как в коде выше:

if(InstanceOfViewModel.Read().Count == 0)

Так что я подумал о командах.Я уже использую один для обработки моих условий сохранения и обновления (вместо множества if).Но теперь я в ловушке.Я не могу понять, что я должен делать / использовать причину, ObservableCollections выставляет одно событие, CollectionChanged.

Одно решение может быть таким: заставить модель представления подписаться на это событие, и когда это произойдет, проверьте, равно ли число 0, если это правда, показать пользователю: «Ваш поиск не получил ни одной строки» или что-либо еще.Но я не хотел бы использовать MESSAGEBOXES в моделях представления, сообщениях и любых видах интерактивности пользователя, которые я пытаюсь делегировать представлению (ям)

Но я хотел бы знать, МОГУ ли я сделать это с помощью КОМАНД илия становлюсь слишком сложным в том, что относительно легко реализовать.

Жду ответов и заранее благодарю!

1 Ответ

0 голосов
/ 26 июня 2010

если ваша коллекция находится в модели представления и вы используете onPropertyChanged ... каждый раз, когда вся ваша коллекция изменяется (не отдельные элементы), она запускает onPropertychanged, который вы можете наблюдать в своем методе onPropertyChanged ... Может быть, я непонять структуру вашего кода ...

...