如何设置datagrid wpf的单个单元格的背景而不是单行?

时间:2017-11-01 19:59:23

标签: c# wpf xaml datagrid

我有这个代码,我想要更改datagrid的单个单元格的背景。

在我的代码中,更改行的背景。

DataTable dt = new DataTable();
            dt.Columns.Add("Time", typeof(string));
            dt.Columns.Add("Place", typeof(string));
            dt.Rows.Add( "23:00", "true");
            dt.Rows.Add( "21:00", "true");
            dt.Rows.Add( "19:00", "false");
            dg.ItemsSource = dt.AsDataView();

和C#代码:

this.dataGridView1.Rows[0].Cells[1].Style.ForeColor = System.Drawing.Color.Red;

我搜索了它和DataGridView的代码:

Func<List<int>, int> convert =
    (list_name) => x-2;

但这不适用于wpf的DataGrid。

如何为DataGrid wpf更改此代码?

3 个答案:

答案 0 :(得分:0)

DataTrigger绑定到属​​性Place并检查值&#34; true&#34;。我还没有使用数据表,但似乎你试图绑定到列#34; Place&#34;这是字符串类型。数据网格要求Place为bool,要么值为&#34; true&#34; (串)。毕竟,如果您更改了绑定属性的值,则必须通知属性的更改(here)。

答案 1 :(得分:0)

您可以通过编程方式设置单元格背景颜色。

DataGridRow dgRow = mydatagrid.ItemContainerGenerator.ContainerFromIndex(mydatagrid.SelectedIndex) as DataGridRow;
DataGridCell cell = mydatagrid.Columns(2).GetCellContent(dgRow).Parent as DataGridCell;
cell.Background = New SolidColorBrush(Colors.Blue);

答案 2 :(得分:0)

这个问题的答案是用C#编写这段代码:

dataGrid.UpdateLayout();
DataGridRow dgRow = mydatagrid.ItemContainerGenerator.ContainerFromIndex(mydatagrid.SelectedIndex) as DataGridRow;
DataGridCell cell = mydatagrid.Columns(2).GetCellContent(dgRow).Parent as DataGridCell;
cell.Background = New SolidColorBrush(Colors.Blue);