Шаблон MVVM - Как я могу вызвать ICommand или CommandReference в коде позади - PullRequest
5 голосов
/ 19 января 2010

Я искал это в переполнении стека, но пока не смог найти ответ на этот вопрос, поэтому я надеюсь, что это не дубликат ...

У меня есть приложение, использующее шаблон MVVM, я хочу сохранитьвсе чисто, но иногда немного кода кажется чище, чем обходной путь XAML.

Я хочу знать, возможно ли вызвать команду из кода позади.

Я уже установил ссылку на команду в моем представлении (см. Ниже)

<local:CommandReference 
                 x:Key="CommandReferencePreviewReportsCommand" 
                 Command="{Binding PreviewReportsCommand}" />

То, что я хочу сделать, это иметь возможность инициировать ссылку на команду или ICommand из кода c #за взглядом.Кто-нибудь знает, как это сделать?

Ответы [ 3 ]

6 голосов
/ 19 января 2010

Вы можете просто вызвать команду из кода:

var parameter = null; // can also be any object you'd like to use as a parameter
this.PreviewReportsCommand.Execute(parameter);
4 голосов
/ 19 января 2010

Хорошо ... Марк Симанн - Вы выбрали меня на правильном пути ... поэтому я повысил ваш голос ...

Я не осознавал, что контекст данных может быть приведен к типу, что затем сделает команды в ViewModel видимыми ... поэтому приведенный ниже код работает для моей ситуации ... и общее решение будет похоже.

((ViewModel.PrintSelectViewModel) this.DataContext).PreviewReportsCommand.Execute(null);
1 голос
/ 20 января 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...