A, B 및 C의 세 클래스로 구성된 모델이 있습니다. A의 ObservableCollection이 B이고 B의 ObservableCollection이 C입니다. C에 대한 참조가 있습니다 .. 나는 필요 없다고 생각한다) 부모에게 (B), B는 A에 대한 참조를 가지고있다. A, B, C의 각 속성은 변경 사항을 알린다.UI에서 "업데이트"되지 않은 알림 속성
그런 다음 할당 된 모든 개체를 "추적"하는 Model 클래스가 있습니다. 그래서 ObservableCollection of A, B와 C가 있습니다 (단 하나만 필요합니다; 더 빠른 참조를 위해서만 B와 C의 목록을 유지합니다).
내 UI에는 사용자 지정 컨트롤이 있습니다.이 UI에는 ViewModel이 있습니다. 보기에는 목록이 있습니다. 그것의 ItemSources는 ViewModel에 명명 된 observablecollection에 바인딩됩니다. 이 ObservableCollection은 RowViewModel입니다. 각 RowViewModel는 C 객체에 대한 참조를 유지합니다.
내 응용 프로그램 (A, B, C 객체를 생성) 모델을로드하고이 메서드 호출하여 뷰의 목록을 설정합니다 (아마도이 문제가 있습니까?)
public void setSensors(IList<C> list)
{
this.sensors.Clear();
if (list != null)
{
foreach (var row in list)
this.sensors.Add(new RowViewModel(row));
}
}
문제가있는 경우이다 내 C 객체의 속성을 수정합니다. UI에 반영되지 않습니다.
누군가 나를 도울 수 있습니까? 당신에게
프란체스코 감사
편집 : (SOLVED) 내 코드를 확인하고 답을 덕분에 한 가지를 변경 : 대신 뷰 모델 (와 뷰 모델로 내 UI 요소를 결합 단순히 전화를 "재" 모델 속성에), 나는 직접 UI를 실제 속성에 바인딩하고 작동합니다! MVVM에서는 "바로 가기"를 사용할 수 없습니까? 아니면 내가 사용하는 경우 해당 속성에 대한 알림을 등록하고 "전파"해야합니까?
속성이 바뀌면 이벤트가 올바르게 실행됩니까? – squelos
잘 .. 나는 그렇다고 생각한다. 내 "NotifyPropertyChanged"에 중단 점을 넣고 입력합니다. – Francesco
누군가 해당 이벤트를 수신하고 있는지 확인해보십시오. 올바른 물체가 효과적으로 듣고 있다면 잘 모르겠다./ – squelos