1

一見すると、タスクは WPF TextBlock Negative Number In Redに似ています

私の場合ItemsControl、ポイントのコレクションに表示する必要があります。各 Point には NumericValue 型のプロパティがいくつかあり、最終的には のラッパーになりNullable<double>ます。

public class Point
{
    NumericValue Proposal { get; set; }
    NumericValue Accepted { get; set; }
    NumericValue Approved { get; set; }
    ... etc.
}

Point のこれらすべてのプロパティを TextBox として表示します。クラス NumericValue にはプロパティ IsNegative があり、IsNegative=True の場合、対応する Textbox の Foreground を赤くしたいと考えています。

ただし、個々の TextBox ごとにスタイルでこのルールを定義するのではなく、IsNegative にバインドされた DataTrigger を使用して単一のスタイルを作成することをお勧めします。

簡略化された XAML は次のようになります。

<ItemsControl ItemsSource="{Binding Path=Points}">
...
    <TextBox Text="{Binding Path=Data.Proposal.Value}" ... />
    <TextBox Text="{Binding Path=Data.Accepted.Value}" ... />
...
</ItemsControl>

その単一のスタイルの DataTrigger のバインディング定義を手伝ってください。

4

2 に答える 2

0

WPF TextBlockで指定されたコンバーターを使用しますこのように赤で負の数

 <ItemsControl ItemsSource="{Binding Path=Points}">
        ...
        <TextBox Text="{Binding Path=Data.Proposal.Value}" Foreground="{Binding Data.Proposal.IsNegative, Converter={StaticResource valueToBackground}}" />
        ...
    </ItemsControl>
于 2012-05-15T11:44:37.443 に答える
0

方法に従うことができます: WPF で XAML を使用した条件付き書式設定。お役に立てると思います。

于 2012-05-15T12:04:02.973 に答える