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>