是否可以通过CollectionChanged事件对ObservableCollection属性进行NotifyChan
本文关键字:属性 NotifyChan ObservableCollection 可以通过 CollectionChanged 事件 是否 | 更新日期: 2023-09-27 18:29:35
我是否可以将ObservableCollection作为类中的属性,但订阅它的CollectionChanged事件,并在Observable collection属性上调用OnPropertyChanged以更新与集合的UI绑定?-
您可以公开只读ItemNames属性,而不是绑定到集合并使用转换器。在Items.CollectionChanged事件处理程序中,您为ItemNames属性引发PropertyChanged事件
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
。