我試圖爲我的DataGrid
中具有特定值的每個單元格設置特定顏色。我在網上看到了很多,但我沒有找到一個能夠接近我的情況。 基本上我有這個DataGrid
結構:在DataGrid中綁定通用單元格屬性
<DataGrid ItemsSource="{Binding MatchService.Matches}" AutoGenerateColumns="False"
CanUserAddRows="false" IsReadOnly="True">
<DataGrid.Columns>
<DataGridTextColumn Header="{DynamicResource championship}" Binding="{Binding Competition}"/>
<DataGridTextColumn Header="1" Binding="{Binding HomeWin}"/>
<DataGridTextColumn Header="X" Binding="{Binding Draw}"/>
</DataGrid.Columns>
,所以我需要使用純XAML的解決方案,尤其是通用的風格,處理所有的單元格值。例如,如果HomeWin
單元格的值爲<50
,則單元格背景爲red
,如果單元格值爲>60
,背景將爲綠色。
如何創建一個默認樣式並將其綁定爲每個DataGridTextColumn
沒有寫轉換器或這樣的?
謝謝。
您可以爲'DataGridTextCo lumn',但是如果你想在除「equals」之外的觸發器中進行屬性值比較,則必須編寫一個轉換器。並且不要寫一個NumberToBrush轉換器。編寫一個數字比較轉換器,並將畫筆放置在使用該觸發器的DataTrigger中。 –
沒有純粹的XAML解決方案。你必須實現並使用綁定轉換器。這是我第四次將這個問題作爲重複來解決。請不要再一次提出同樣的問題。第二個StackOverflow用戶帳戶在這裏也不是很受歡迎。 – Clemens
@Clemens,嚴格來說,有一個純xaml解決方案:dataTrigger在cellStyle中爲每個可能的值。然而它只適用於有限的(和更好的小)值集合(例如,枚舉,布爾) – ASh