是否可以通过CollectionChanged事件对ObservableCollection属性进行NotifyChan

本文关键字:属性 NotifyChan ObservableCollection 可以通过 CollectionChanged 事件 是否 | 更新日期: 2023-09-27 18:29:35

我是否可以将ObservableCollection作为类中的属性,但订阅它的CollectionChanged事件,并在Observable collection属性上调用OnPropertyChanged以更新与集合的UI绑定?-

是否可以通过CollectionChanged事件对ObservableCollection属性进行NotifyChan

您可以公开只读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