细胞在XamDataGrid随机改变背景颜色
问题描述:
我有一个XamDataGrid,我更改单元格的背景颜色,如果它的价值已经被用户改变,这样的:细胞在XamDataGrid随机改变背景颜色
var result = touchpad.ShowDialog();
if (result.HasValue && result.Value)
{
if (valueHasChanged)
{
var presenter = CellValuePresenter.FromCell(activeCell);
presenter.Background = _changedCellBackgroundBrush;
}
}
现在这个工作和背景已更改的单元格获得我想要的颜色。但是,如果我在表格中滚动,偶尔其他单元格也会将其背景颜色更改为我的自定义颜色,或者使用我的颜色将单元格的背景颜色更改为默认颜色。
上面的代码永远不会被调用,我通过设置断点来检查。而上述行是我的程序中我设置自定义背景颜色的唯一位置。
这是刷新问题吗?滚动时是否需要刷新网格?
答
我遇到了同样的问题,在我滚动时在其他行上随机选择行选择器复选框。这是一个单元虚拟化的问题,因为并非所有的行都被创建,直到实际滚动到视图中并且单元被回收,导致您的背景被用于未编辑的单元。
<igDP:XamDataGrid Name="SummaryDataGrid" DataSource="{Binding Summaries}" RecordContainerGenerationMode="LazyLoad" GroupByAreaLocation="None">
:
我通过添加RecordContainerGenerationMode元件固定它