我有这个代码,我想要更改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更改此代码?
答案 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);