1

私はContextMenu次のようにXAMLに持っていますMenuItem:

<MenuItem  Command="local:MyClass.MyCommand" "/>

HeaderのをMenuItemどうにか変えて のTextを変えたいRoutedCommand。そして、私はそれをしたいと思いCanExecuteRoutedEventHanlderます。を変更しただけRoutedCommand TextMenuItemは更新されません。これCanExecuteRoutedEventHanlderは、実行時にメニューが既に作成されているためだと思います。

Command基本的に、からへの更新を強制する方法が必要ですMenuItem.

4

1 に答える 1

1

独自のコマンドを作成します。

 public class MyCommandClass : ICommand, INotifyPropertyChanged
{
    public string Text { get; set; }

    public MyCommandClass(string text)
    {
        this.Text = text;
    }

    public bool CanExecute(object parameter)
    {
        this.Text = "changed the text";
        PropertyChanged.Invoke(this, new PropertyChangedEventArgs("Text"));
        return true;
    }

    public event EventHandler CanExecuteChanged;

    public void Execute(object parameter)
    {

    }

    public event PropertyChangedEventHandler PropertyChanged;
}

次に、xaml でヘッダーを MyCommandClass の Text プロパティにバインドします。

于 2010-01-16T22:51:35.630 に答える