Вызов свойства изменен для связанного элемента - PullRequest
0 голосов
/ 28 сентября 2011

Моя модель представления реализует INotifyPropertyChanged для свойств, которые она делает доступными для моего представления.Это делает доступным коллекцию объектов, которые не реализуют INotifyPropertyChanged.

Моя коллекция привязана к ItemControl, на мой взгляд, с ItemTemplate, который используется для индивидуального отображения каждого элемента.Шаблон элемента привязан к атрибуту Name членов моей коллекции.

Как я могу указать моему представлению обновляться при изменении свойств членов моей коллекции?

Ответы [ 2 ]

1 голос
/ 28 сентября 2011

Вам нужно либо реализовать INotifyPropertyChanged для объектов в вашей коллекции (рекомендуем подход), либо вы можете вручную обновить привязку, например,

myItemsControl.GetBindingExpression(
     ItemsControl.ItemsSourceProperty).UpdateTarget();

Если вы находитесь в ViewModel, выможет вызвать событие PropertyChanged для вашего класса Collection, например, следующее, хотя я не уверен, обновит ли это отдельные элементы или нет

// My PropertyChanged method is usually called RaisePropertyChanged
RaisePropertyChanged("MyCollection");  

Вы также можете делать то, что предложила Миримон и установитьзначение до нуля, а затем обратно, хотя лично я бы порекомендовал другой подход, если это возможно.

1 голос
/ 28 сентября 2011

Вы должны реализовать INotifyPropertyChanged для членов коллекции.Или вы можете сбросить свою коллекцию во ViewModel:

public void Reset() {
    List<TestData> temp = YourCollection;
    YourCollection = null;
    YourCollection = temp;
}
...