如何在wpf中更改datagrid的单个单元格颜色?

时间:2013-04-24 10:32:41

标签: c# wpf xaml datagrid wpfdatagrid

stage chart 我想在运行时更改此网格的特定单元格的背景颜色(显示已预订的座位)。我从窗口加载的event.i上的数据表绑定此网格有一个像'A33'的席位记录。我的绑定代码就像此

MySqlConnection mycon = new MySqlConnection(str);
mycon.Open();
MySqlDataAdapter da = new MySqlDataAdapter("select * from Stage", mycon);
da.Fill(dt);
MyGrid.ItemsSource = dt.DefaultView;

2 个答案:

答案 0 :(得分:5)

您的单元格数据应具有属性IsBooked,然后在DataGrid.CellStyle中,您可以使用IsBooked上的数据触发器来更改其背景。 (除了DataTriggers之外还有some other alternatives,但是如果你只有一个布尔条件,我发现它们非常方便。)

答案 1 :(得分:4)

通过代码更改特定单元格的背景:

   DataGridRow firstRow = dataGrid1.ItemContainerGenerator.ContainerFromItem(dataGrid1.Items[0]) as DataGridRow;
   DataGridCell firstColumnInFirstRow = dataGrid1.Columns[0].GetCellContent(firstRow).Parent as DataGridCell;
   //set background
   firstColumnInFirstRow.Background = Brushes.Red;