別のComboBoxで選択された項目がある場合に基づいてComboBoxを有効/無効にしたいとします。私はスタイルにトリガーを設定することでそれを動作させることができましたが、それはコンボボックスのための私のカスタムグローバルスタイルをオーバーライドします。私のスタイルを失うことなく同じ機能を得る別の方法はありますか?SelectedItemに基づいてComboBoxのIsEnabledプロパティを設定する
<ComboBox Grid.Column="1" Grid.Row="1"
Name="AnalysisComboBox"
MinWidth="200"
VerticalAlignment="Center" HorizontalAlignment="Left"
ItemsSource="{Binding Path=AvailableAnalysis}">
<ComboBox.Style>
<Style TargetType="{x:Type ComboBox}">
<Setter Property="IsEnabled" Value="True" />
<Style.Triggers>
<DataTrigger Binding="{Binding SelectedItem,ElementName=ApplicationComboBox}" Value="{x:Null}">
<Setter Property="IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.Style>
</ComboBox>
FWIW、これはスタイルで動作しています。すべてがXAMLであるため、コンバーターを使用するのが好ましいです。トリガーがアクティブでないときにIsEnabledをtrueに設定するように設定する必要はありませんでした。私はこの質問に遭遇した人々のためにこれを投稿しているので、スタイルではできないという印象を受けることはありません。 – Kohanz