Silverlight MVVM добавить запись из пользовательского контроля - PullRequest
0 голосов
/ 27 декабря 2010

У меня есть пользовательский элемент управления для поиска номеров контейнеров. Если пользователь вводит номер контейнера, который является новым для системы, я хочу сообщить виртуальной машине «У меня есть новая запись для добавления».

Метод MVVM избегает использования Events для связи с виртуальной машиной, поскольку они создают программный код. Должен ли я создать свойство зависимости для запуска ВМ, но я не думаю, что видел другие элементы управления со свойством «NewRecord»?

Есть мысли?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2010

ObservableCollection

Взгляните на класс ObservableCollection . В частности, когда вы добавляете новый элемент в эту коллекцию, он запускает событие INotifyCollectionChanged с NotifyCollectionChangedAction.Add и NewItems, установленными для добавленного элемента.

Этот класс обычно используется в MVVM для привязки данных к изменяющейся коллекции элементов. Вы должны иметь возможность легко связать это с вашим пользовательским интерфейсом через привязку данных. Это также должно помочь вам справиться со сценариями, в которых «второй элемент был добавлен до того, как я завершил свою обработку новой записи», когда вы решаете поведение своих приложений.

0 голосов
/ 28 декабря 2010

Хорошим способом является использование шаблона Mediator - большинство библиотек MVVM будут иметь некоторый механизм публикации / подчинения, например, «Messenger» в MvvmLight или EventAggregator в Prism.

По сути, ваша виртуальная машина поиска контейнеров публикует сообщение «NewRecord», возможно, используя экземпляр записи в качестве полезной нагрузки, и заинтересованные части приложения подписываются на это сообщение и делают то, что им нужно делать с объект, как он входит, как показывать его в списке ...

Надеюсь, это поможет,

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