0

これまでは、条件に応じてアイテム (この場合は TextBox) にさまざまなスタイル プロパティを適用するために<Style.Triggers>andを使用していました。DataTrigger

しかし今、私は別の場所で定義した StaticResource にプロパティをDataTrigger設定するという条件に基づいて欲しいです。Style

TextBox.Triggers を使用すると、その内部で DataTriggers を使用できないというエラーが表示されますが、それは私が望むものではない EventTriggers だけです。

どのように対処すればよいですか?

4

1 に答える 1

0

少なくとも私の場合は、スタイルの継承を通じて適切な解決策を見つけたようです。このようにスタイルを定義すると

次のコードReadOnlyTextBoxは、私がデフォルトで持っているスタイルであり、Datatrigger に基づいて、私の 1 つのプロパティをInEditMode書き換えます - デフォルトのスタイル<Setter Property="IsReadOnly" Value="True" />で設定されたようなデフォルトのReadOnlyTextBoxスタイルプロパティのいくつかを元に戻します

<TextBox.Style>
    <Style BasedOn="{StaticResource ReadOnlyTextBox}" TargetType="{x:Type TextBox}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding InEditMode}" Value="True">
                <Setter Property="IsReadOnly" Value="False" />
                <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.WindowBrushKey}}"/>
                <Setter Property="BorderThickness" Value="1"/>
                <Setter Property="Focusable" Value="True"/>
                <Setter Property="IsReadOnlyCaretVisible" Value="True"/>
                <Setter Property="KeyboardNavigation.IsTabStop" Value="True"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</TextBox.Style>
于 2013-01-29T12:58:59.403 に答える