设置特定DataGrid单元格的背景

时间:2012-02-15 17:55:38

标签: c# wpf datagrid

我希望设置特定单元格的背景颜色。该行在后面的代码中被选中。虽然使用dataGrid的CurrentCell属性在后面的代码中选择了单元格,但IsSelected属性似乎不起作用。仅适用于表格。

XAML:

 <Style x:Key="CellStyle" TargetType="{x:Type dg:DataGridCell}">  
        <Style.Triggers> 
            <Trigger Property="IsSelected" Value="True">  
                <Setter Property="Background" Value="Yellow" /> 
            </Trigger> 
        </Style.Triggers> 
    </Style> 

代码:

dg.CurrentCell = new DataGridCellInfo(dg.Items[0],dg.Columns[0]);

dg.CellStyle = this.FindResource("CellStyle") as Style;

2 个答案:

答案 0 :(得分:0)

试试这个示例代码,它适用于我

public Window8() {
  this.InitializeComponent();

  this.Loaded += (sender, args) =>
                    {
                      var cellStyle = this.FindResource("CellStyle") as Style;
                      this.dg.CellStyle = cellStyle;
                      this.dg.SelectedIndex = 0;
                    };
}

<Window.Resources>
  <Style x:Key="CellStyle"
          TargetType="{x:Type DataGridCell}">
    <Style.Triggers>
      <Trigger Property="IsSelected"
                Value="True">
        <Setter Property="Background"
                Value="Yellow" />
        <Setter Property="Foreground"
                Value="Black" />
      </Trigger>
    </Style.Triggers>
  </Style>

</Window.Resources>

注意

该样式适用于所有单元格!

希望这会有所帮助

答案 1 :(得分:0)

试试这个:

您可以在xaml中设置单元格样式:

<DataGrid CellStyle="{StaticResource CellStyle}"

然后:

   var dataGridCellInfo = new DataGridCellInfo(dataGrid.Items[0], dataGrid.Columns[0]);
   dataGrid.SelectedCells.Clear();
   dataGrid.SelectedCells.Add(dataGridCellInfo);