![]() |
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方法的两个(短)缺点:
要处理这两个问题中的第一个,只需设置
要处理这两个问题中的第二个,只需添加
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |