我想在动态条件下为我的数据网格的单元格着色,现在我只想让所有单元格都变成红色来尝试。
使用此代码,我发现变量“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 完成。