Blendを使用したListBoxアイテムのDataTemplateのIsSelectedのWPFトリガー
-
03-07-2019 - |
質問
listboxItemを選択したときに前景色を変更したかったので、次のコードを使用して変更しました:
<DataTrigger Binding="{Binding
RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type ListBoxItem}},Path=IsSelected}" Value="True">
<Setter TargetName="descriptionTB" Property="Foreground" Value="#000"/>
</DataTrigger>
こちら。
しかし、デザイナーに Blend でこれを実行させたい場合、xamlをドリルせずにどのように実行しますか?
ありがとう
解決
Artur、
Expression Blendのトリガーデザイナーは、EventTriggersとプロパティトリガーの追加と変更のみを許可します。 BlendでDataTriggersを追加する方法を見つけていません。 Blendを使用してRelativeSource Bindingを設定する方法もわかりません。私は常にテスト用にXAMLのコードを渡し、他のすべてにはBlendを使用しています。
他のヒント
質問を誤解しているかもしれませんが、descriptionTBのスタイルリソースを作成し、デザイナーにバインディングではなくそのスタイル定義のみを処理させることはできませんか?
<DataTrigger Binding="..">
<Setter TargetName="descriptionTB" Property="Style" Value="{StaticResource DescriptionTextBoxStyle}" />
</DataTrigger>
コントロールまたはウィンドウのリソースセクションで、スタイル定義を追加します。
<Style TargetType="{x:Type TextBox}" x:Key="DescriptionTextBoxStyle">
<Setter Property="Foreground" Value="#000" />
</Style>
デザイナーをUIのメカニズムからさらに分離したい場合は、デザイナー用のすべてのスタイルを収集できる別のxamlファイルにリソースディクショナリを作成できます。次に、そのリソースディクショナリをコントロールまたはアプリケーションのメインリソースとマージできます。
所属していません StackOverflow