Пожалуйста, не судите строго, если этот вопрос обсуждался ранее или косвенно отвечал в огромных соседних призмах и блоках mvvm. В реализации WPF классов RelayCommand или DelegateCommand есть такая EventHandlerMVVM (ICommand) в Silverlight
/// <summary>
/// Occurs whenever the state of the application changes such that the result
/// of a call to <see cref="CanExecute"/> may return a different value.
/// </summary>
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
, но в SL поднабора пространств имен не существует никакого класса CommandManager. И здесь я застрял. Я еще не нашел обходного пути для этого в MVVM-приемке для SL (PRISM для меня так сложна). Различные простые приложения HelloWorldMVVM вообще не имеют отношения.
Заранее спасибо и извините за мой английский -)
Я думаю, что вы немного ошибаетесь - есть поддержка ICommand (может быть ограничена, но существует и класс ICommand существует) в Silverlight 2 –
Это правда, что интерфейс 'ICommand' определен в Silverlight, но он нигде не используется, и вся командная инфраструктура в WPF, которая так хорошо работает с шаблоном MVVM, отсутствует в Silverlight. –
Спасибо. Я думал, что присутствие ICommand означает полную командующую поддержку, поэтому я ошибался - (Таким образом, оказывается, что реализация MVVM в SL не так проста, как в WPF. Я нашел только один способ - используя прилагаемые правильные и поведенческие правила, как это: http://blogs.southworks.net/jdominguez/2008/08/icommand-for-silverlight-with-attached-behaviors/ или с использованием готового фреймворка, где многие события охвачены http: // nroute. codeplex.com –