我在XAML中ContextMenu
使用以下MenuItem
:
<MenuItem Command="local:MyClass.MyCommand" "/>
我想通过某种方式更改Header
的{{1}}来更改MenuItem
的{{1}}。我想在Text
中做到这一点。如果我只是更改了RoutedCommand
CanExecuteRoutedEventHanlder
,RoutedCommand
没有更新,我认为这是因为在Text
运行时已经创建了菜单。
基本上我需要一种强制从MenuItem
更新到CanExecuteRoutedEventHanlder
答案 0 :(得分: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属性。