Я провел большую часть своего дня, исследуя это; Мне любопытно, можно ли полностью выполнить простую привязку в XAML без необходимости реализации INotifyPropertyChanged в коде позади.
По иронии судьбы, за количество времени, которое я потратил на изучение этого, я мог бы просто сделать это в коде за 5 раз.
Я сталкивался с несколькими статьями, которые предлагают использовать DataTriggers (для MenuItems DataTrigger должен быть внутри триггера стиля). Я пробовал это, но это не работает без ошибок.
Я подозреваю, что 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>