2011-09-28 6 views
0

내보기 모델은 내보기에서 사용할 수있는 속성에 대해 INotifyPropertyChanged를 구현합니다. INotifyPropertyChanged를 구현하지 않는 개체 컬렉션을 사용할 수있게합니다.바운드 요소에서 호출 속성이 변경되었습니다.

내 컬렉션은 내보기에서 ItemControl에 바인딩되며 ItemTemplate은 각 항목을 개별적으로 표시하는 데 사용됩니다. 항목 템플릿은 내 수집 멤버의 Name 특성에 바인딩됩니다.

내 컬렉션 회원의 속성이 변경되면 내보기가 업데이트되도록 알려줄 수 있습니까?

답변

1

(접근 권장) 또는 수동처럼 무언가에 의해 바인딩을 새로 고칠 수 있습니다

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

ViewModel에있는 경우 Collection 클래스의 PropertyChanged 이벤트를 다음과 같이 올릴 수 있지만 개별 항목을 업데이트 할 것인지 확실하지는 않습니다.

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

Mirimon이 suggeted 한 것을 수행하고 값을 null로 설정 한 다음 다시 설정할 수 있습니다. 개인적으로 가능한 경우 다른 접근 방식을 권장합니다.

1

컬렉션 구성원에 대해 INotifyPropertyChanged를 구현해야합니다. 또는 당신은 뷰 모델에서 컬렉션을 재설정 할 수 있습니다

당신은 당신의 컬렉션의 개체에 대한 INotifyPropertyChanged을 구현하거나 필요
public void Reset() { 
    List<TestData> temp = YourCollection; 
    YourCollection = null; 
    YourCollection = temp; 
} 
관련 문제