CommandManager "не может разрешить символ" - PullRequest
1 голос
/ 25 мая 2010

После добавления класса «RelayCommand» (который использует класс CommandManager) в мое приложение Silverlight у меня появляется ошибка:

Имя 'CommandManager' не существует в текущем контексте

Этот класс является членом пространства имен System.Windows.Input, которое находится в сборке PresentationCore.dll. Проблема в том, что я не могу добавить эту DLL в свое приложение ...

У меня странное предположение: этот класс (CommmandManager) нельзя использовать в Silverlight. Я прав?

Как мне реализовать MVVM-шаблон (http://msdn.microsoft.com/en-us/magazine/dd419663.aspx)?

Спасибо.

Ответы [ 3 ]

2 голосов
/ 25 мая 2010

Вы можете использовать MVVM Light Framework , который предоставляет версию Silverlight RelayCommand.

2 голосов
/ 30 июня 2010

Действительно, класс CommandManager не существует в SilverLight ... Проверьте следующее сообщение в блоге для решения в SilverLight:

http://blog.walteralmeida.com/2010/06/modelviewviewmodel-design-pattern-an-implementation-of-relaycommand-for-silverlight.html

2 голосов
/ 25 мая 2010

Silverlight имеет очень примитивную поддержку ICommand. В частности, он не поддерживает маршрутизацию команд или CommandManager. Он даже не обеспечивает реализацию ICommand. Он просто определяет интерфейс, а ButtonBase знает, как его использовать.

Итак, суть заключается в том, что вам нужно удалить эту специфичную для WPF часть кода или создать какую-то базовую реализацию CommandManager в Silverlight.

...