少なくとも私の場合は、スタイルの継承を通じて適切な解決策を見つけたようです。このようにスタイルを定義すると
次のコード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>