如何将按钮的enable属性绑定到wpf中的枚举

如何将按钮的enable属性绑定到wpf中的枚举,wpf,listview,Wpf,Listview,我正在使用基于{更新和未更新}枚举的listView分组。在我的例子中,它们是一个调用update的按钮,我只想禁用更新组中的行。在图片中看到 更新部分中的列表我希望该按钮应被禁用。我正在使用中的一个示例 假设1)您的虚拟机实现了INotifyPropertyChanged,并在适当的时刻触发适当的事件(通常由属性的setter负责),那么这将起作用;2) 您的控件本身知道如何对IsEnabled=false做出视觉上的反应,即更改颜色或任何您喜欢的操作 由于您使用的是enum而不是bool,

我正在使用基于{更新和未更新}枚举的listView分组。在我的例子中,它们是一个调用update的按钮,我只想禁用更新组中的行。在图片中看到

更新部分中的列表我希望该按钮应被禁用。我正在使用中的一个示例

假设1)您的虚拟机实现了INotifyPropertyChanged,并在适当的时刻触发适当的事件(通常由属性的setter负责),那么这将起作用;2) 您的控件本身知道如何对
IsEnabled=false
做出视觉上的反应,即更改颜色或任何您喜欢的操作

由于您使用的是enum而不是bool,因此坚持我建议的解决方案的最简单方法是使用另一个属性扩展VM,该属性始终重新计算布尔标志。然后,您可以从
enum
属性调用
PropertyChanged
事件,而不是从
bool
属性(实际上,
IsEnabled
已绑定到该属性)调用
PropertyChanged
事件,以便无论何时更改,WPF都会收到布尔属性也已更改的通知

否则,请使用转换器解决问题,这需要大量代码

假设1)您的虚拟机实现了INotifyPropertyChanged,并在适当的时刻触发适当的事件(通常由属性的setter负责),那么这将起作用;2) 您的控件本身知道如何对
IsEnabled=false
做出视觉上的反应,即更改颜色或任何您喜欢的操作

由于您使用的是enum而不是bool,因此坚持我建议的解决方案的最简单方法是使用另一个属性扩展VM,该属性始终重新计算布尔标志。然后,您可以从
enum
属性调用
PropertyChanged
事件,而不是从
bool
属性(实际上,
IsEnabled
已绑定到该属性)调用
PropertyChanged
事件,以便无论何时更改,WPF都会收到布尔属性也已更改的通知


否则,请使用转换器解决问题,这需要大量代码

你可能会感兴趣是的,我已经找到了解决方案,但无论如何,这也是有帮助的。你可能会感兴趣是的,我已经找到了解决方案,但无论如何,这也是有帮助的。
IsEnabled={Binding ProperyNameOnYourViewModel, Mode=OneWay}