6

プロパティ( 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で検索すると、WPF博士がエラーを説明していることがわかります。私がここで達成しようとしていることを行うためのクリーンな方法はありますか?

4

2 に答える 2

13

コントロールの 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>
于 2008-11-19T15:51:52.287 に答える
0

まあ、トリガーを使用してそれを行うことはできません (DataTemplate、ControlTemplate、または Style 内にいる場合を除きます)。

バインディングを使用してそれを行うことができます。0/1 から Visible/Hidden に変換するカスタム ValueConverter を記述する必要があります。その後、Visibility プロパティを BlhaType プロパティにバインドできます。

または、コードで Visibility を設定し、XAML ベースのアプローチをあきらめることもできます (私がやったであろうことです)。

于 2008-11-19T15:49:32.417 に答える