wpf datagrid 水平滚动错误?
Posted
技术标签:
【中文标题】wpf datagrid 水平滚动错误?【英文标题】:wpf datagrid horizontal scrolling bug? 【发布时间】:2012-06-27 09:35:17 【问题描述】:我注意到我在 WPF 中使用我的DataGrid
时,当我设置SelectionMode="Extended"
时,水平滚动变得非常不完整/奇怪。某种“全选”类型的按钮在网格的左上角迅速出现/消失,并且标题和列在滚动时来回跳跃。滚动条本身也在滚动时来回跳跃。滚动确实有点作用,但是 while 滚动的行为看起来确实很麻烦。
我注意到如果我设置SelectionMode="Single"
,那么问题就会消失,但我想使用SelectionMode="Extended"
。这是我的数据网格的代码:
<DataGrid x:Name="dataGrid" SelectionMode="Extended" SelectionUnit="Cell"
HeadersVisibility="Row,Column" RowHeaderWidth="0"
ItemsSource="Binding ElementName=dataPager, Path=PageView"
CanUserReorderColumns="False"
CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="False">
有人知道如何解决这个问题吗?提前致谢!
【问题讨论】:
无法重现您的问题。当 DataGrid 中的选择发生变化时,您是否在做某事(在代码/VM 中)?或者你没有提到的任何其他事情。 不对代码中的数据网格做任何事情,只是在视图模型中处理数据源。如果您无法重现该问题,则它必须与 datagrid/datagridcolumnheader 的样式有关,尽管我在那里没有看到任何奇怪的东西...... 【参考方案1】:所以我想出了解决问题的方法。我认为是“全选”按钮导致它在滚动过程中出现/消失的方式出现问题,所以我研究了是什么使该按钮出现以及如何使其不出现。原来问题出在行标题上,所以我改变了:
HeadersVisibility="Row,Column"
到:
HeadersVisibility="Column"
在标题可见性中删除行部分后,“全选”按钮停止出现,并且按预期进行滚动。仍然不完全确定为什么“全选”按钮会以这种方式出现/消失......
【讨论】:
这只是救了我谢谢。对于任何有类似问题的人,我发现FrozenColumnsCount
似乎也是部分原因。在此处查看我的 SO 问题:***.com/questions/17466674/…以上是关于wpf datagrid 水平滚动错误?的主要内容,如果未能解决你的问题,请参考以下文章