1
8
我可能不会 确切地 了解您的需求,但是我处理类似情况的方法是在ObservableCollection上使用CollectionChanged事件,并根据需要简单地创建/销毁视图模型。
在ListView中添加/删除大量项时,可能会出现一些性能问题。 我们通过以下方法解决了这个问题:扩展ObservableCollection以获得addRange、removerange、binaryInsert方法,并添加通知其他人集合正在更改的事件。与一个扩展的CollectionViewSource一起使用,当集合更改时,它会临时断开源连接,工作得很好。 HTH 丹尼斯 |
2
64
我使用懒散构造的自动更新集合:
使用以下内容
|
3
4
首先,我认为没有一个“正确的方法”可以做到这一点。这完全取决于您的应用程序。有更多正确的方法和更少正确的方法。 尽管如此,我想知道你为什么要保留这些收藏品。” 同步中 “你认为什么情况会使他们失去同步?如果你看看Josh Smith的示例代码 MSDN article on M-V-VM ,您将看到,大多数情况下,模型与视图模型保持同步,因为每次创建模型时,都会创建一个视图模型。这样地:
我想知道,是什么阻止你创建一个
|
4
4
|
5
1
本文使用mvvm提供undo/redo,提供mirrorcollection类来实现视图模型和模型集合的同步。 http://blog.notifychanged.com/2009/01/30/viewmodelling-lists/ |
6
1
好吧,我很喜欢书呆子。 this answer 所以我不得不分享这个抽象工厂,我添加到它来支持我的ctor注入。
基于此:
而这:
这里是完整性的空检查程序:
|
7
0
我已经编写了一些助手类,用于将可观察的业务对象集合包装在它们的视图模型对应物中。 here |
8
0
我很喜欢280Z28的解决方案。只是一句话。是否需要为每个NotifyCollectionChangedAction执行循环?我知道操作的文档状态为“一个或多个项目”,但是由于ObservableCollection本身不支持添加或删除范围,我认为这永远不会发生。 |
9
0
将集合重置为默认值或匹配目标值是我经常遇到的问题 我编写了一个包含错误方法的小助手类,其中包括
它满足了我的大部分需求 第一个可能最适用,因为您也在转换类型 注意:这只同步集合中的元素,而不同步其中的值 |
10
0
同时 Sam Harwell's solution 已经很好了,有两个问题:
因此,我提出了一个解决方案,解决Sam Harwell方法的两个(短)缺点:
要处理这两个问题中的第一个,只需设置
要处理这两个问题中的第二个,只需添加
|
Kryptonit364 · 在DataGrid中隐藏调整大小和选择列 2 年前 |
hassan Ma · 从顶部将文本插入WPF文本块 2 年前 |
Arijit · 移动画布内绘制的矩形 2 年前 |
juraj14466 · C#WPF实时图表将点渲染为图像 2 年前 |