リストビューのアイテムテンプレートにテキストボックスがあります。 長さが75文字を超える場合は常にテキストボックスの背景色を赤に変更したいのですが、ユーザーの入力に応じて背景色を更新する必要があります。 WPFでこれを達成するための最良の方法は何ですか?
回答:
回答№1は8私はこのようなことがうまくいくと信じています。それはあなたがあなた自身のバックグラウンドカラーコンバータを書くことを要求するでしょう。
<TextBox
Background="{Binding RelativeSource={RelativeSource self},
Path=Text,
UpdateSourceTrigger=PropertyChanged,
Converter={StaticResource backgroundColorConverter}}"
...
/>
別の選択肢は、以下のようにDataTriggerを使用することです。これはまた、文字列の長さが75以上であるかどうかを確認するためにコンバーターを必要とします。
<TextBox>
....
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Background" Value="YourDefaultColor" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=YourTextBox, Path=Text, Converter={StaticResource textLengthColorConverter}}" Value="True">
<Setter Property="Background" Value="Red" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
回答№2の場合は0
あなたはテキストブロックの長さに応じて背景を適用するテキストブロック内で "Run"タグを利用することができます