私は一日のかなりの時間をこれの調査に費やしてきました。コード ビハインドで INotifyPropertyChanged を実装する必要なく、単純なバインディングを XAML で完全に実行できるかどうかに興味があります。
皮肉なことに、これを調査するのに費やした時間の中で、コード ビハインドで 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>