gpt4 book ai didi

WPF Listview 虚拟化模式在绑定(bind)时会出现问题

转载 作者:行者123 更新时间:2023-12-04 18:25:39 24 4
gpt4 key购买 nike

我创建了一个新类(从 listview 派生)。

此 ListView 是 View 的一部分,该 View 具有 View 模型。此 View 模型有两个主要属性 - 1)myView(ICollectionView)...和 ​​isWritable(bool)。

每个 ListView 项( ListView 内的行)都有一个控件模板,该模板显示一组控件。

其中少数控件的可见性由“isWritable”属性决定...通过 FindAncestor 方法。

问题是 ..当我们滚动这个 ListView 时,一些使用“isWritable”属性来启用/禁用的控件被禁用,即使属性的值为“True”。

如果我删除回收,它工作正常......我认为这个问题是 - 因为它重用旧容器......绑定(bind)并没有完美地与 FindAncestor 发生。

如您所见,我在这里使用虚拟化......并且项目面板被回收。所以我认为当我们重用 itempanel 时,使用 FindAncestor 并没有像预期的那样发生数据绑定(bind)。

任何帮助,将不胜感激!

<controls:ListViewMine                                                   
ItemsSource="{Binding Path=myView}"
VirtualizingStackPanel.IsVirtualizing="true"
ScrollViewer.IsDeferredScrollingEnabled="True"
VirtualizingStackPanel.VirtualizationMode="Recycling"
IsSynchronizedWithCurrentItem="True"
SelectionMode="Single"
Template="{StaticResource myView2}"
AllowDrop="{Binding Path=isWritable}">
<controls:ListViewMine.View>
<controls:GridViewMine ScrollViewer.VerticalScrollBarVisibility="Visible" ColumnHeaderContainerStyle="{StaticResource listViewHeaderStyle}">
<GridViewColumn Width="110" />
<GridViewColumn Header="Name" CellTemplate="{StaticResource templateName}"/>
</controls:GridViewMine>
</controls:ListViewMine.View>
</controls:ListViewMine>

最佳答案

试试 VirtualizationMode="Standard" .

解决了我遇到的问题:带有组合框和 selectedindex 集的单元格模板。滚动时未呈现选定的索引。

我不知道你的性能是否会得到同样的改善。

关于WPF Listview 虚拟化模式在绑定(bind)时会出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11058444/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com