我想在动态条件下为我的数据网格的单元格着色,现在我只想让所有单元格变红才能尝试。
使用此代码,我知道变量“Row”为空。在阅读了大量帖子后,我得出结论认为这是因为VirtualizingStackPanel.IsVirtualizingProperty
设置为true以提高性能。我知道我需要在DataGrid“表”中关闭此属性,但现在没有成功。
table.SetValue( VirtualizingStackPanel.IsVirtualizingProperty , false );
table.ItemsSource = dt.DefaultView;
for ( int r = 1 ; r < dt.Rows.Count ; r++ ) {
for ( int c = 1 ; c < dt.Columns.Count ; c++ ) {
App.func.dmessage( "table.ItemContainerGenerator.Items.Count:" + table.ItemContainerGenerator.Items.Count );
DataGridRow Row = table.ItemContainerGenerator.ContainerFromIndex( r ) as DataGridRow;
DataGridCell cell = table.Columns[c].GetCellContent( Row ).Parent as DataGridCell;
//set background
cell.Background = Brushes.Red;
}
}
我没有看到对这个问题有任何明确的回应,所以我真的很感激如何设置这个“VirtualizingStackPanel.IsVirtualizingProperty
”属性,以便能够动态着色表格单元。
背景信息:该表将显示电子节点计算电压,我希望用户设置上限和下限,而这在设计时不能用XAML完成。