我有可能有一个ObservableCollection作为类中的一个属性,但订阅它的CollectionChanged事件并在ObservableCollection属性上调用OnPropertyChanged来更新一个绑定到集合的UI绑定? -是否有可能通过CollectionChanged事件对ObservableCollection属性的NotifyChanged?
回答
而不是绑定到集合和使用转换器,您可以公开只读的ItemNames属性。在Items.CollectionChanged事件处理您提出一个PropertyChanged事件的itemNames的财产
public class ViewModel
{
public ViewModel()
{
Items = new ObservableCollection<Item>();
Items.CollectionChanged += (o, e) => NotifyPropertyChanged("ItemNames");
}
public ObservableCollection<Item> Items { get; private set; }
public string ItemNames { get { return String.Join(",", Items); } }
}
是的,但通常你不会因为开销而想做那样的事情。如果您使用带有ItemsSource
的控件,则他们知道如何处理CollectionChanged
而无需重新创建所有内容。
我结合在一个网格的DataColumn的性质和使用的IValueConverter到的ObservableCollection转换为逗号分隔字符串。我明确知道这不是过去的路,因为我无法过滤等。我知道这可以作为我的类中的只读属性如何通知从收集后只读字符串属性已更改已经改变? – 2012-04-01 00:13:30
@ChristopherLeach:只需订阅CollectionChanged事件并为持有该字符串的属性触发PropertyChanged事件。 – 2012-04-01 00:29:39
只有hickup是该类是从WCF服务生成的。我试图用只读字符串属性生成一个部分类客户端,并附加了CollectionChanged事件处理程序,但是这不会在整个服务中分散使用。我应该在一个新类中继承WCF类,并将事件链接到那里吗? – 2012-04-01 02:10:29
- 1. ObservableCollection和CollectionChanged事件
- 2. 是否可以订阅ObservableCollection上的CollectionChanged事件?
- 3. 处理的ObservableCollection CollectionChanged事件
- 4. 的ObservableCollection CollectionChanged事件problum
- 5. 的ObservableCollection CollectionChanged事件没有引发
- 6. ObservableCollection <T> CollectionChanged事件
- 7. C#:ObservableCollection - 为什么没有通用的“CollectionChanged”事件?
- 8. AS3 - 是否有可能通过对象属性搜索数组?
- 9. C# - 检查ObservableCollection CollectionChanged事件是否已完成执行
- 10. 的ObservableCollection和CollectionChanged事件作为WCF datacontract
- 11. ObservableCollection的CollectionChanged事件未触发
- 12. WPF - 数据绑定ObservableCollection CollectionChanged事件?
- 13. 是否有可能通过PHP得到HTML元素的属性
- 14. 是否有可能通过它的值获取属性c#
- 15. 如何检查的ObservableCollection的“CollectionChanged”事件为空或不是
- 16. 是否有可能通过属性来分解渲染用户?
- 17. neo4jphp:是否有可能通过属性检索节点?
- 18. 是否有可能通过属性作为参数
- 19. 是否有可能通过配置覆盖persistence.xml属性?
- 20. 是否有可能通过jQuery获取嵌入标签属性?
- 21. 是否有可能通过PowerShell'更新'ADF管线属性
- 22. 的ObservableCollection CollectionChanged事件似乎并没有被解雇 - 为什么?
- 23. 是否有可能加入jQuery的事件对象的自定义属性?
- 24. 是否有可能通过对象的指定列表NG-重复属性
- 25. 如何创建的ObservableCollection通过项目的属性排序和发射CollectionChanged当项目的属性更改
- 26. CollectionChanged事件不是在静态ObservableCollection上触发
- 27. 是否可以通过属性来做同样的事情?
- 28. Leaflet.js:是否可以通过属性过滤geoJSON功能?
- 29. Ruby通过属性,可能是零
- 30. ObservableCollection中的属性是否需要PropertyChangedEvent
如果使用svcutil创建类,该怎么办?我会在客户端生成readonly吗?如果我从服务中接收数据,而不是在客户端生成数据,该怎么办?我会在哪里附加事件? – 2012-04-01 02:14:53
另外正在更改的集合在另一个集合中嵌套。 – 2012-04-01 02:23:34
我通过设置一个构造函数来接受它自己的类型作为参数,然后复制值并创建一个新的ObservableCollection并将NotifyPropertyChanged调用附加到指定的CollectionChanged事件上。该字符串已更新。我只使用这样的构造函数,因此可以安全地创建新的集合。我不确定这是否是最有效的方式,但它正在工作。非常感谢。 – 2012-04-01 05:55:03