无法设置WPF Datagrid列前景

问题描述 投票:0回答:1

我想将wpf数据网格中列的前景设置为绿色。我试过这种方式。但它没有用。

   <dg:DataGrid.Columns>
      <dg:DataGridTextColumn Header="Customer" Binding="{Binding CustomerName}" Foreground="{Binding FontColor, Mode=OneWay}" Width="300" "/>

在模型类中,我已经指定了这样的。

   private Brush _fontcolor;
    public Brush FontColor
    {
        get
        {
            return _fontcolor;
        }
        set
        {
            _fontcolor = value;
            OnPropertyChanged("FontColor");
        }
    }

在我填充数据的viewmodel类中,我已经提到了这样的。

NotifyItem ni = new NotifyItem();
ni.CustomerID = (int)dr["CustomerID"];
ni.FontColor = Brushes.Green;
NotifyCollections.Add(ni);

这有什么不对?为什么前景未设置为绿色?有没有办法将前景设置或绑定到一个颜色而不去DataGridTemplateColumn?此外,我已经为所选行设置了背景样式。下面是xaml。

    <dg:DataGrid.Resources>
        <LinearGradientBrush x:Key="jj" EndPoint="0.5,1" StartPoint="0.5,0">
                <GradientStop Color="#FF4D77F9" Offset="0"/>
                <GradientStop Color="#FF96B5FF" Offset="1"/>
            </LinearGradientBrush>
            <Style TargetType="{x:Type dg:DataGridCell}">
                <Style.Triggers>
                    <Trigger Property="dg:DataGridCell.IsSelected" Value="True">
                        <Setter Property="Background" Value="{StaticResource jj}" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </dg:DataGrid.Resources>
wpf wpfdatagrid
1个回答
0
投票

有没有办法将前景设置或绑定到一个颜色而不去DataGridTemplateColumn

是。使用ElementStyle

<DataGridTextColumn Header="Customer" Binding="{Binding CustomerName}" Width="300">
    <DataGridTextColumn.ElementStyle>
        <Style TargetType="TextBlock">
            <Setter Property="Foreground" Value="{Binding FontColor}" />
        </Style>
    </DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
© www.soinside.com 2019 - 2024. All rights reserved.