2
我在我的WPF窗體上運行導入例程的菜單項,我綁定了命令屬性到我的視圖模型中的ICommand屬性,但由於某種原因該方法不會觸發。RelayCommand沒有觸發MenuItem點擊WPF MVVM
這是XAML:
<Menu Height="21"
Margin="0,-2,0,0"
VerticalAlignment="Top"
Grid.ColumnSpan="2">
<MenuItem Header="File" Command="{Binding ImportFileCommand}">Import</MenuItem>
</Menu>
而且這是在我的視圖模型:
private ICommand importfilecommand;
public ICommand ImportFileCommand
{
get
{
if (this.importfilecommand == null)
{
this.importfilecommand = new RelayCommand(parm => ImportFile());
}
return this.importfilecommand;
}
}
private void ImportFile()
{
OpenFileDialog dialog = new OpenFileDialog();
dialog.Filter = "Tab Files (*.tab)|*.tab*";
if (dialog.ShowDialog() == true)
{
// MessageBox.Show(dialog.FileName);
}
}
這是我用我的窗體上的所有按鈕,但菜單項格局只是不會工作。我錯過了什麼或菜單項必須以不同的方式完成?
謝謝。
你有適當的DataContext進入菜單嗎?這個部分在這個問題上並不清楚。否則它看起來不錯。 – 2009-12-21 22:50:59
是的,如果我在ImportFileCommand上設置了一個斷點,那麼RelayCommand會變得更新,但它只是不想觸發。 – 2009-12-21 22:53:47