你最好绑定到一个对象而不是一个原始类型。该对象通常被称为您的视图的“模型”。
WPF 使用模型(或通常是视图模型)的 INotifyPropertyChanged 接口来通知视图模型已更改状态。
因此,您首先需要将数据类定义为实现 INotifyPropertyChanged 接口并在属性更改时触发 PropertyChanged 事件的模型。
设置绑定时,您需要担心绑定的 5 个主要元素。绑定具有源对象、源对象上的源路径、目标对象、目标对象上的目标属性和可选的转换器。
如果不指定源,则默认为设置绑定的控件的 DataContext。还有其他用于设置源的选项。这是关于设置源的 Microsoft 文章。然后,您可以设置属性的路径以从绑定源中拉出。在您的情况下,源是一个布尔值并且没有路径,因为绑定正在使用整个源对象。
目标始终是您设置绑定的控件,目标属性是您要绑定到的此控件的属性。在这种情况下,MenuItem 和 IsEnabled。
转换器可以选择将源值转换为与目标属性兼容的值。您可以将任何对象用于实现 IValueConverter 或 IMultiValueConverter(用于 MutliBindings)的转换器。
在您的情况下,我将首先创建一个实现 INotifyPropertyChanged 的模型。接下来,我会将菜单的 DataContext 分配给模型的一个实例。然后我将绑定设置为:
IsEnabled="{Binding Path=EnableFlag}"
(其中 EnableFlag 是模型中要通过菜单绑定到的布尔属性)
如果您正确设置了 INotifyPropertyChanged 接口,则只要您更改模型上的此属性,菜单项就会启用/禁用。