1

我想在动态条件下为我的数据网格的单元格着色,现在我只想让所有单元格都变成红色来尝试。

使用此代码,我发现变量“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 完成。

4

0 回答 0