Я искал это на Переполнении стека, но еще не мог найти ответ на это, таким образом, я надеюсь, что это не дубликат...
У меня есть приложение с помощью шаблона MVVM, мне нравится содержать вещи в чистоте, но иногда немного кода позади кажется инструментом для очистки, чем обходное решение XAML.
Я хочу знать, возможно ли инициировать команду от codebehind.
Я, по моему мнению, уже настроил ссылку команды (см. ниже),
<local:CommandReference
x:Key="CommandReferencePreviewReportsCommand"
Command="{Binding PreviewReportsCommand}" />
То, что я хочу сделать, смочь инициировать ссылку команды или ICommand из кода c# позади представления. Кто-либо знает, как сделать это?
Вы можете просто вызвать команду из кода-позади:
var parameter = null; // can also be any object you'd like to use as a parameter
this.PreviewReportsCommand.Execute(parameter);
Хорошо ... Марк, казамнун - ты из-за меня на правильном пути ... Итак, я вводит ваш голос ...
Я не понимал, что контекст данных может быть в типе, Что затем сделает команды в ViewModel видимой ... поэтому код ниже работает для моей ситуации .. И общий раствор будет похоже.
((ViewModel.PrintSelectViewModel) this.DataContext).PreviewReportsCommand.Execute(null);
MVVM light toolkit => EventToCommand :)
http://galasoft.ch/mvvm/resources/Manual/GalaSoft.MvvmLight.Binaries.V3.Alpha3.zip