我正在使用已定义RowDetailsTemplate属性的DataGrid控件。显然,单击一行将显示该行的行详细信息。但是,一旦显示了行详细信息,那么在DataGrid中向下滚动时就会出现问题。一旦可见详细信息的行向上移动并移出视野,该行详细信息即刻消失,从而导致随后的行“跳转”并填充空间。再次向上滚动将使行详细信息立即出现,从而导致随后的行“跳”回向下以提供空间。
这似乎不是虚拟化问题,因为无论EnableRowVirtualization的值如何,都会发生相同的行为。另外,我理解从可视树的角度来看这是有道理的,因为行详细信息容器位于行容器内。但是,该行为实际上在外观上看起来很愚蠢。
无论如何,在取消选择该行之前,即使不显示实际行,也始终保持行详细信息可见?
最佳答案
将DataGrid上的ScrollViewer.CanContentScroll
附加属性设置为"False"
。这将允许DataGrid项目及其RowDetails的平滑滚动。
但这会影响性能,因为将不使用DataGrid的虚拟化功能。
关于wpf - DataGrid行详细信息可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13863205/