Невозможно установить передний план столбца данных WPF - PullRequest
0 голосов
/ 24 февраля 2019

Я хочу установить передний план столбца в сетке данных 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>

1 Ответ

0 голосов
/ 25 февраля 2019

Есть ли способ установить или привязать передний план к цвету, не переходя к 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>
...