2

MVVM を使用して UI のボタンにコマンドを設定しようとしています。ただし、ボタンをクリックしてもコマンドは実行されません。このコードは、Jason Dolinger の例(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">

ビューモデルは次のようになります。

public class HomeScreenViewModel : DependencyObject
{
    public ICommand Navigate;

    public HomeScreenViewModel()
    {
        this.Navigate = new NavigateCommand();
    }
}
4

1 に答える 1

5

Navigateプロパティである必要があります。バインディングはプロパティでのみ機能します

于 2011-02-19T20:00:46.543 に答える