我有一个命令绑定到WPF中的按钮,但是对于我的生活,我无法启动该功能。
ControlPanelViewModel是我正在使用的VM。
<Window.DataContext>
<ControlPanel:ControlPanelViewModel/>
</Window.DataContext>
<Button x:Name="button" Command="{Binding NavCommand}" Content="Button" HorizontalAlignment="Left" Margin="264,219,0,0" VerticalAlignment="Top" Width="75"/>
public ControlPanelViewModel()
{
NavCommand = new RelayCommand<string>(OnNav);
}
public RelayCommand<string> NavCommand { get; private set; }
private void OnNav(string destination)
{
Console.WriteLine("This is working");
switch (destination)
{
case "credential":
CurrentViewModel = _credentialViewModel;
break;
}
}
现在,避开OnNav中的逻辑,我永远不会看到我的console.writeline
被调用。我已经坚持了几个小时。数据上下文看起来很好,设置看起来很好如果需要查看RelayCommand类,请告诉我。
答案 0 :(得分:0)
问题可能来自RelayCommand
实施。它是否继承自ICommand
?您如何实施Execute
和CanExecute
?在您的情况下,CanExecute
应该返回true