現在、私は(C#で)その値に基づいてDataGridのセルを色付けしようとしています。私のDataGridの列は曜日(月曜日〜金曜日)に設定されていますが、現在はこれを行うことができますが、時間が非常に長くなります。WPF/XAMLでトリガーを使用する方が効率的ですか?
<DataGrid Name="mapDisplay" ItemsSource="{Binding}" Margin="27,29,27,10" ColumnWidth="73">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!-- Check if cell has value of 0 in the 'Monday' column. -->
<Condition Binding="{Binding Path=Monday}" Value="0"/>
<Condition Binding="{Binding Column.DisplayIndex,RelativeSource={RelativeSource Self}}" Value="1"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="White" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<!-- Check if cell has value of 1 in the 'Monday' column. -->
<Condition Binding="{Binding Path=Monday}" Value="1"/>
<Condition Binding="{Binding Column.DisplayIndex,RelativeSource={RelativeSource Self}}" Value="1"/>
</MultiDataTrigger.Conditions>
<Setter Property="Background" Value="White" />
</MultiDataTrigger>
...
</Style.Triggers>
</Style>
</DataGrid.CellStyle>
</DataGrid>
あなたが想像できるので、0の値からいくつかの非常に長いXAMLコード内の週の結果の毎日のための3(私の最大)の値にこれをやって:これは、現在どのようです。長さを減らし、コードをより効率的または動的にする方法はありますか?
更新日: @フリーマン?
<dg:DataGrid.ItemContainerStyle>
<Style
TargetType="{x:Type dg:DataGridColumn}"
BasedOn="{StaticResource {x:Type dg:DataGridColumn}}">
<Setter
Property="Background"
Value="{Binding ItemColour}" />
</Style>
</dg:DataGrid.ItemContainerStyle>
私の場合は、コンバータを使用して値を色に変換しますか?
私はあなたのVM上で、それらの論理を持っているだけ – Gopichandar