stackoverflowに多くの助けを見つけた後、私はまだ答えが見つからない問題に苦しんでいます。私の目標は以下の通りです:Elementstyleのリファレンスリストの値
私は数字でいっぱいのwpf/c#アプリケーションでデータグリッドを持っています。数字が正か負かに依存して、フォアグラウンドフォントを緑または赤に変更したい。
- 文字列の説明
- 私は列を手動で設定しているtotalMoney
と呼ばれる12倍のリスト:DataGridのitemsourceは、次の要素が含まれて自分のクラスのリストです。最初に説明を表示してからtotalMoney [0]、totalMoney [1]などの値を設定します。いくつか検索した後、私は次のコードでdatatrigger方法プラスIValueConverterを経てここにStackOverflowの上の値に基づいて、個々のセルの前景色を変更する方法を見つけました:
<DataGridTextColumn.ElementStyle>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding totalMoney[2], Converter={StaticResource money}}" Value="1">
<Setter Property="Foreground" Value="Green"/>
</DataTrigger>
<DataTrigger Binding="{Binding totalMoney[2], Converter={StaticResource money}}" Value="0">
<Setter Property="Foreground" Value="Black"/>
</DataTrigger>
<DataTrigger Binding="{Binding totalMoney[2], Converter={StaticResource money}}" Value="-1">
<Setter Property="Foreground" Value="Red"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGridTextColumn.ElementStyle>
しかし、あなたがコードに見るようにWPFでは、リスト内の個々の項目(totalMoney [X])にバインディングを参照する必要があります。私は手動でデータグリッド内の各列のスタイルを設定する必要があります。私はいくつかのデータグリッドでスタイルを使用したいので、これは私にとっては非常に実用的ではないようです。
私の質問は、一般的にセルの値によってスタイルが変化するように定義することは可能ですか?それとも、私が見落とした目標を達成するために、まったく別の方法がありますか?
ありがとうございました。明日は、あなたがこれらのテキストと判断した場合には一見
お手数をおかけしていただきありがとうございました!それは私のお金のクラスでも "0,00€"のフォーマットで働くので、私の目的に完全に合っています。だから、ありがとう:) – Nemoi