命令绑定不起作用WPF

时间:2017-07-14 20:39:25

标签: c# wpf data-binding

我有一个命令绑定到WPF中的按钮,但是对于我的生活,我无法启动该功能。

XAML

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"/>

ControlPanelViewModel.cs

    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类,请告诉我。

1 个答案:

答案 0 :(得分:0)

问题可能来自RelayCommand实施。它是否继承自ICommand?您如何实施ExecuteCanExecute?在您的情况下,CanExecute应该返回true