Как использовать сторонний элемент управления внутри viewmodel? - PullRequest
3 голосов
/ 07 апреля 2010

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

Если бы это зависело от меня, я бы выполнял загрузку данных далеко от просмотра, но это не так. Итак, я, кажется, в ситуации, когда моя модель зрения зависит от моей точки зрения. Как мне лучше всего справиться с этим? Я чувствую себя довольно грязно, заставляя представление публиковать события для модели представления, но я не вижу другого разумного способа передать эту информацию в модель представления.

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

Если публикация событий в модели представления действительно является наиболее разумным способом, есть ли какой-то общий шаблон, используемый для этого? Как ты это делаешь?

1 Ответ

0 голосов
/ 07 апреля 2010

Как правило, вы не позволяете вашей ViewModel знать детали или даже тип элементов управления вашего представления. Отвечать на события - более чистый путь. Существует ряд библиотек, содержащих поведения для сопоставления управляющих событий с ICommands в вашей ViewModel.

Caliburn - одна из таких библиотек. Вы можете сопоставить события управления с методами в вашей ViewModel.

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