2012-06-22 3 views
0

Я использую winform и включаю wpf через ElementHost.Как я могу вызвать команду WPF из кнопки Winform?

Как я могу позвонить WPF ICommand из события щелчка кнопки Winforms? Для меня это все новое, так что несите меня с такими вопросами.

Мой текущий код

CarView car = (CarView) CarHost.Child;   
CarViewModel cvm = (CarViewModel) car.DataContext; 
cvm.SaveCommand.Execute(null); 

Так, делая это, я был в состоянии назвать SaveCommand, но я не получаю никаких данных.

Заранее спасибо.

+0

Как только у вас есть экземпляр ICommand, вы просто вызываете Execute на нем или хотите, чтобы CanExecute выполнил выполнение. –

+0

@ Адам Миллс - Я не буду следовать за тобой. Можете ли вы привести мне пример? – Calvin

+1

Почему бы просто не использовать свойство 'Command', а не использовать событие' Click'? – Rachel

ответ

2

Возможно, у меня что-то не хватает. Обычно вы могли бы сделать что-то вроде:

<Button Command="{Binding MyCommand}" /> 

И тогда, когда кто-то нажимает на кнопку, МояКоманда Выполним вызывается метод.

Я полагаю, из коды, вы могли бы назвать:

private void OnClick(object sender, RoutedEventArgs e) 
{ 
    if (MyCommand.CanExecute(null)) 
     MyCommand.Execute(null); 
} 

Но для очень специфических обстоятельств (которые вы не упомянули) Я не знаю, почему вы могли бы сделать это таким образом, за исключением. Я думаю, вам определенно нужно дать нам немного больше информации.

+0

Я использую winform и включаю wpf через elementhost. Поступая таким образом, я хочу вызвать icommand из события щелчка позади кода. – Calvin

+1

ОК, ну, тогда вы бы хотели сделать то, что я показал в коде C#. Я прошел в нуле, потому что я не принимал никаких параметров, но вы также можете передать свой параметр. – Tim

Смежные вопросы