2
我花了很多时间研究这个问题;我很好奇如果可以在XAML中完全进行简单的绑定,而不需要在后面的代码中实现INotifyPropertyChanged。具有讽刺意味的是,在花费大量时间研究这个问题之后,我可以在代码背后完成5次。我已经遇到了一些建议使用DataTriggers的文章(对于MenuItems,DataTrigger必须在样式触发器中)。我试过这个,但它没有错误没有工作。在同一个控件中绑定MenuItem属性(IsEnabled)到组合框属性(SelectedIndex)
我怀疑DataTrigger找不到组合框,因为MenuItem范围问题,我在其他线程中读取。
任何人有任何建议吗?
代码:(没有构建或运行时错误,但物业未更新)
<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>