Реализация MVVM с нуля без использования INotifyPropertyChange? - PullRequest
1 голос
/ 10 апреля 2011

1 Ответ

4 голосов
/ 10 апреля 2011

Имейте в виду, что во Flex они реализуют почти тот же шаблон, что и INotifyPropertyChanged. Это необходимо для того, чтобы сообщить пользовательскому интерфейсу об обновлении. Единственное отличие состоит в том, что во Flex вы получаете тег [Bindable], который реализует шаблон для вас. В Silverlight вы должны сделать это самостоятельно. Вы можете получить помощь в его реализации, как в случае с «Property Weaver», но в обоих случаях у вас есть событие и шаблон, который выглядит следующим образом (псевдокод):

var prop;
get: return prop
set: if prop == value return
     prop = value
     notify prop changed

Что касается команд, то это связано с императивным или декларативным связыванием в Flex против Silverlight. Вам не нужна команда во Flex, потому что вы можете просто вызвать метод в своем контексте. В Silverlight это декларативно, поэтому вам нужно привязать объект к ... вы не можете привязать методы, поскольку они не являются объектами. ICommand дает вам это ... но также добавляет грязную сантехнику.

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