【发布时间】:2011-02-19 19:58:43
【问题描述】:
我正在尝试使用 MVVM 在我的 UI 中的按钮上设置命令。但是,当我单击按钮时,该命令不会执行。该代码基于Jason Dolinger's example(第 3 段中的链接)。
看起来应该很简单,所以我确定一旦发现问题我会觉得很傻。
随后是相关代码位。命令如下(很简单):
public class NavigateCommand : ICommand
{
public bool CanExecute(object parameter)
{
return true;
}
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
public void Execute(object parameter)
{
MessageBox.Show("Executed.");
}
}
XAML 看起来像:
<Button x:Name="btn_ProjectManager" Command="{Binding Navigate}" Content="Test Button">
ViewModel 看起来像:
public class HomeScreenViewModel : DependencyObject
{
public ICommand Navigate;
public HomeScreenViewModel()
{
this.Navigate = new NavigateCommand();
}
}
【问题讨论】:
-
如何设置视图的数据上下文?
-
另外,为什么你的视图模型是从 DependencyObject 派生的?