首頁 > 後端開發 > C++ > 如何在 WPF DataGrid 中實作條件單元格著色?

如何在 WPF DataGrid 中實作條件單元格著色?

DDD
發布: 2025-01-23 09:02:12
原創
511 人瀏覽過

How to Implement Conditional Cell Coloring in a WPF DataGrid?

在WPF DataGrid中實作條件單元著色

在WPF DataGrid中,根據特定值動態自訂單元格顏色可以增強資料的視覺表現。雖然使用DataGrid.CellStyle樣式看起來很直觀,但它應用於整行而不是單一單元格。

基於列的自訂:

為了實現單元格特定的顏色更改,可以考慮根據列調整樣式,考慮其不同的內容。例如:

<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>
登入後複製

此範例為「Name」欄位中包含「John」的儲存格設定淺綠色背景。

使用值轉換器:

或者,可以使用值轉換器將資料轉換為顏色:

<code class="language-csharp">public class NameToBrushConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, 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, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}</code>
登入後複製

使用方法:

<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>
登入後複製

直接屬性綁定:

最後,將Background屬性直接綁定到傳回所需畫筆的屬性提供了另一種方法。在這種情況下,當依賴項變更顏色時,需要屬性變更通知。

以上是如何在 WPF DataGrid 中實作條件單元格著色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板