Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Menukar Warna Sel DataGrid WPF Berdasarkan Nilai?
Apabila menggunakan kawalan WPF DataGrid, anda biasanya perlu menyesuaikan penampilan visual sel berdasarkan nilai datanya. Semasa menggunakan DataGrid.CellStyle mungkin kelihatan seperti pendekatan yang mudah, ia mungkin secara tidak sengaja menggunakan gaya pada keseluruhan baris dan bukannya sel individu. Mari kita terokai cara alternatif untuk melaksanakan pewarnaan khusus sel.
Untuk menggunakan gaya pada sel tertentu dalam lajur, pertimbangkan untuk menyesuaikan sifat ElementStyle setiap DataGridTextColumn. Contohnya, untuk menukar warna latar belakang sel yang Namanya "John", gunakan kod berikut:
<code class="language-xml"><DataGridTextColumn Binding="{Binding Name}"> <DataGridTextColumn.ElementStyle> <Style TargetType="TextBlock"> <Style.Triggers> <Trigger Property="Text" Value="John"> <Setter Property="Background" Value="LightGreen" /> </Trigger> </Style.Triggers> </Style> </DataGridTextColumn.ElementStyle> </DataGridTextColumn></code>
Untuk logik teduhan yang lebih kompleks, anda boleh menggunakan penukar nilai. Berikut ialah contoh pemetaan nilai Nama ke berus yang sepadan:
<code class="language-csharp">public class NameToBrushConverter : IValueConverter { public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string input = (string)value; switch (input) { case "John": return Brushes.LightGreen; default: return DependencyProperty.UnsetValue; } } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { throw new NotSupportedException(); } }</code>
Cara menggunakan:
<code class="language-xml"><Window.Resources> <local:NameToBrushConverter x:Key="NameToBrushConverter" /> </Window.Resources> ... <DataGridTextColumn Binding="{Binding Name}"> <DataGridTextColumn.ElementStyle> <Setter Property="Background" Value="{Binding Name, Converter={StaticResource NameToBrushConverter}}" /> </DataGridTextColumn.ElementStyle> </DataGridTextColumn></code>
Sebagai alternatif, anda boleh mengikat terus sifat Latar Belakang sel kepada sifat yang mengembalikan berus yang diingini. Dalam pendekatan ini, pastikan pemberitahuan perubahan sifat dinaikkan apabila kebergantungan warna berubah.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Warna Sel DataGrid WPF Berdasarkan Nilai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!