继承DataGridBoundColumn做成Label列,滚动后背景色消失或错位?
继承DataGridBoundColumn,在方法GenerateEditingElement返回Label, 在GenerateEditingElement方法处理中Label的背景色根据绑定数据的值设定。
如:绑定数据对象中有BackgourColor属性,当BackgroundColor=Red时, 返回Label的Backgroud设置为Red.
初始显示时,颜色设置和位置都没有问题。向下垂直滚动然后返回,单元格的背景色会消失,或者错移到同列的其他单元格上。
有什么办法解决?
[解决办法]
datagrid是数据虚拟化。机制和virtualizingstackpanel相似。它始终保持只渲染可视高度内最大正整数个datagridrow对象。而且这些行对象是重用的。所以会出现你的问题。
解决方法:在onloadingrow和unloadrow事件中做判断