Можно ли NotifyChanged для свойства ObservableCollection через событие CollectionChanged? - PullRequest
0 голосов
/ 01 апреля 2012

Могу ли я иметь ObservableCollection в качестве свойства в классе, но подписаться на его событие CollectionChanged и вызвать OnPropertyChanged для свойства ObservableCollection, чтобы обновить привязку пользовательского интерфейса к коллекции?-

Ответы [ 2 ]

2 голосов
/ 01 апреля 2012

Вместо привязки к коллекции и использования конвертера вы можете предоставить свойство 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); } }
}
2 голосов
/ 01 апреля 2012

Да, но обычно вы не хотите делать что-то подобное из-за накладных расходов. Если вы используете элементы управления с ItemsSource, они знают, как обрабатывать CollectionChanged, не создавая заново все.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...