WPF:DataGrid按自定義邏輯改變文字顏色

    主要利用IValueConverter 接口,該轉換器接口提供一種將自定義邏輯應用於綁定的方法。
    該轉換器似乎還有更多騷操作,暫時沒有深究。

轉載自:WPF DataGrid 動態轉換字體顏色

.XAML:需要加入Resources,設置需要改變顏色的對應欄的CellStyle

<Window.Resources>
        <loc:ColorConverter x:Key="colorCvt" />
    </Window.Resources>
    <Grid>
        <DataGrid x:Name="dgStudentList" ItemsSource="{Binding}">
            <DataGrid.Columns>
                <DataGridTextColumn Header="ID" Binding="{Binding ID}">
                    <DataGridTextColumn.CellStyle>
                        <Style TargetType="DataGridCell">
                            <Setter Property="Foreground" Value="{Binding ID,Converter={StaticResource colorCvt}}"/>
                        </Style>
                    </DataGridTextColumn.CellStyle>
                </DataGridTextColumn>
                <DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
                <DataGridTextColumn Header="Age" Binding="{Binding Age}" />
            </DataGrid.Columns>
        </DataGrid>
    </Grid>

.CS:實現轉換器

public class ColorConverter:IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value != null)
            {
                int id;
                if (int.TryParse(value.ToString(), out id))//這裏改成你需要的邏輯
                {
                    if (id % 2 == 1)
                    {
                        return Brushes.Red;
                    }
                }
            }
            return Brushes.Black;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章