В Silverlight нет поддержки команд. Когда пользователь манипулирует элементами управления в вашем представлении, вам нужно будет написать код (например, обработчики событий), который изменяет модель представления в коде для вашего представления. Это может быть что-то простое, например, вызов метода в модели представления, когда пользователь нажимает кнопку в представлении. Используя PRISM, вы можете создавать вложенные свойства в XAML, чтобы избавиться от этих обработчиков событий, но если вы не хотите использовать PRISM, вы можете просто использовать обработчики событий.
Еще один аспект, который вам нужно будет обработать, - это изменение вида при изменении модели вида. В частности, вы захотите включить и отключить элементы управления в зависимости от состояния модели представления. Для этого вам нужно привязать свойство IsEnabled
элемента управления к чему-либо в модели представления, которое отражает, разрешена ли определенная операция. Реализация пользовательских IValueConverter
объектов, которые преобразуются в логические значения, часто полезны. Например, если ваша модель представления имеет свойство, которое представляет счетчик, и вы хотите, чтобы определенный элемент управления в представлении был включен только тогда, когда счетчик больше нуля, вы можете создать преобразователь значения, который преобразуется в true
, когда число больше нуля и используйте этот преобразователь значения в привязке.
Если вы попытаетесь адаптировать пример приложения MVVM для WPF, вам придется избавиться от всех видов использования команд и заменить свой собственный код. Код в вашем примере не имеет смысла в Silverligt, но в WPF он участвует в процессе определения, включен ли элемент управления в представлении, виден и т. Д.