WPF でのデータ コンテキストの明確化について質問があります。PRISM ベースのアプリケーションがあります。Button コントロールに DataTrigger を配置しようとしています。この Button コントロールは、PRISM コマンド インタープリターを使用するように構成されています。
<Button
Grid.Column="0"
Content="{Resx AdvancedTroubleShootingButtonLabel}"
prism:Click.Command="{Binding AdvancedTroubleShootingCommand}"
>
<Button.Resources>
<Style
TargetType="{x:Type Button}" BasedOn="{StaticResource CDMWrappedButtonStyle}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SizerVisible, ElementName=SecuritySizer}" Value="False" >
<Setter Property="Button.IsEnabled" Value="True" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=SizerVisible, ElementName=SecuritySizer}" Value="True" >
<Setter Property="Button.IsEnabled" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Resources>
</Button>
私の仮定は、DataTriggers がトリガーの Datacontext に指定された elementName を使用することでした。この XAML をテストすると、トリガーが実行されません。PRISM コマンド構文を削除して (そして標準のボタン クリック イベントにフックして) テストすると、トリガーが起動します。
私が知りたいのは、PRISM コマンド ハンドラー [構文] によってトリガーがトリガー スクリプトで識別された DataContext を使用しない理由です。