1

ContextMenu在 XAML 中有以下内容MenuItem

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

我想通过某种方式改变Headerof来改变of 。我想在. 如果我只是更改, s 不会更新,我认为这是因为菜单在运行时已经创建。MenuItemTextRoutedCommandCanExecuteRoutedEventHanlderRoutedCommand TextMenuItemCanExecuteRoutedEventHanlder

基本上我需要一种方法来强制更新CommandMenuItem.

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 中将 Header 绑定到 MyCommandClass 的 Text 属性。

于 2010-01-16T22:51:35.630 回答