현재 (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>
당신은 몇 가지 매우 긴 XAML 코드에서 주 결과 매일 매일 3 (내 최대)의 값으로 0의 값에서이 일을, 상상할 수있는 것처럼 : 이것은 현재 방법이다. 길이를 줄이고 내 코드를보다 효율적 또는 동적으로 만들 수있는 방법이 있습니까?
업데이트 : @ 프리먼?
<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