我花了我一天的大部分时间来研究这个;我很好奇是否可以在 XAML 中完全进行简单绑定,而无需在后面的代码中实现 INotifyPropertyChanged。
具有讽刺意味的是,在我研究这个问题的时间里,我本可以在后面的代码中完成 5 次以上。
我遇到了一些建议使用 DataTriggers 的文章(对于 MenuItems,DataTrigger 必须在 Style Trigger 内)。我已经尝试过了,但它不能没有错误地工作。
我怀疑由于 MenuItem 范围问题,DataTrigger 找不到组合框,我在另一个线程中阅读了该问题。
有人有什么建议吗?
代码:(没有构建或运行时错误,但属性未更新)
<ContextMenu>
<MenuItem Header="Do Something Neat" x:Name="MyMenuItem" Click="MyMenuItem_Click">
<MenuItem.Style>
<Style TargetType="{x:Type MenuItem}">
<Style.Triggers>
<Setter Property="IsEnabled" Value="True" />
<DataTrigger Binding="{Binding ElementName=MyComboBox, Path=SelectedIndex}" Value="-1">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</MenuItem.Style>
</MenuItem>
</ContextMenu>