“可視性”を選択的に設定するにはどうすればよいですか? DataBinding / Triggersを介したTabItemの作成
-
08-07-2019 - |
質問
プロパティ(BlahType)が1に設定されている場合は非表示にし、0に設定している場合は表示する必要があるタブページがあります。
<TabItem Header="Blah">
<TabItem.Triggers>
<DataTrigger Binding="{Binding BlahType}" Value="0">
<Setter Property="TabItem.Visibility" Value="Hidden" />
</DataTrigger>
</TabItem.Triggers>
</TabItem>
問題は、このエラーが発生することです:
"Triggers collection members must be of type EventTrigger"
そのエラーをGoogleで検索すると、 Dr。 WPFがエラーを説明します。ここで私が達成しようとしていることを行うきれいな方法はありますか?
解決
コントロールのTriggersコレクションは、現在EventTriggersのみをサポートしていると思います。 DataTriggerを使用する場合は、たとえば、スタイル内に配置するだけです。例:
<TabItem Header="Blah">
<TabItem.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding BlahType}" Value="0">
<Setter Property="TabItem.Visibility" Value="Hidden" />
</DataTrigger>
</Style.Triggers>
</Style>
</TabItem.Style>
</TabItem>
他のヒント
さて、トリガーを使用してそれを行うことはできません(DataTemplate、ControlTemplate、またはStyle内にいる場合を除く)。
バインディングを使用してそれを行うことができます。0/ 1からVisible / Hiddenに変換するカスタムValueConverterを記述する必要があります。その後、VisibilityプロパティをBlhaTypeプロパティにバインドできます。
または、コードで可視性を設定し、XAMLベースのアプローチをあきらめることができます(私がしたことです)。
所属していません StackOverflow