1

動的な条件でデータグリッドのセルに色を付けたいのですが、今のところ、すべてのセルを赤くしてみます。

このコードでは、変数 "Row" が null になっています。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