この動作は私にとって非常に奇妙に思えます。私はContentControl
DataContractを使用してTabControlをレンダリングしています。タブが開いていないときに画像を表示したいときは非表示にしたい。しかし、ここに問題があります:WPFトリガーは、要素に設定されている場合、プロパティを設定しません。
<Image Name="image1" Stretch="Uniform" Visibility="Hidden" Source="/Affinity;component/Images/affinity_logo.png">
<Image.Style>
<Style TargetType="Image">
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count, ElementName=tabcontrolworkspaces}"
Value="0">
<Setter Property="Visibility" Value="Visible" />
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
これは動作しません...並べ替え。
私はこれをVisiblityとMarginでテストしました(確かに)。このプロパティがImage
タグで定義されていない限り、このトリガーはプロパティを変更します。そうである場合、トリガはそのプロパティを更新しません。したがって、画像の可視性を定義せず、トリガーがそれを隠すと、それは機能します。問題は、デフォルトはVisibleで、トリガーはvalue = 0のときにトリガーを表示し、それ以外の場合は非表示にする必要があることです。
なぜトリガーは明示的に定義されたプロパティを上書きしませんか?その目的ではないのですか?
他の方法で設定しましたか?のように、!= "0"の場合、可視性は表示されません。 – mydogisbox
トリガー値に!=を使用することはできますか? – Tyrsius
直接的なものではありませんが、少しの労力でそれを行うことができます。 @ CodeNakedはより良い解決策を持っています。ここには、望ましくない解決策があります。 http://blogs.msdn.com/b/mikehillberg/archive/2008/09/30/comparabledatatrigger.aspx – mydogisbox