2012-06-22 22 views
0

我使用winform和通過ElementHost併入wpf。如何從Winform的Button調用WPF命令?

如何從Winforms按鈕的click事件調用WPF ICommand?這些對我來說都是新事物,所以請忍受這些問題。

我當前的代碼是

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

這樣做,我是能夠調用SaveCommand,但我沒有得到任何數據。

在此先感謝。

+0

一旦你擁有ICommand實例,你只需調用Execute,或者如果你想要CanExecute,那麼執行。 –

+0

@Adam Mills - 我沒跟着你。你可以給我一個例子嗎? – Calvin

+1

爲什麼不使用按鈕的'Command'屬性而不是使用'Click'事件? – Rachel

回答

2

我可能會錯過這裏的東西。通常你會這樣做:

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

然後當有人點擊按鈕,MyCommand的Execute方法被調用。

我想,從代碼隱藏,你可以撥打:

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

但除了(你沒有提到),我不知道爲什麼你會那樣做非常特殊的情況。我想你一定需要給我們更多的信息。

+0

我使用winform和通過elementhost結合wpf。通過這樣做,我想從背後的代碼的click事件中調用icommand。 – Calvin

+1

好的,那麼,你會想要做我在C#代碼中顯示的內容。我傳入null是因爲我假定沒有參數,但是您也可以傳入參數。 – Tim