문제

두 개의 개별 데이터 템플릿이있는 WPF Listbox에 바인딩 된 ObservAbleCollection 인스턴스가 있습니다 (하나는 디스플레이 용, 편집 용). 편집을위한 데이터 템플릿에는 텍스트 상자에 편도 바인딩과 저장 버튼이 있습니다.

저장 버튼을 누르면 (목록 항목을 편집 모드로 넣은 후) 텍스트 상자를 변경하여 관측형 수집 (및 디스플레이)의 값을 대체하도록 값을 변경할 수 있도록 어떤 변경이 필요합니까?

도움이 되었습니까?

해결책

컬렉션의 항목은 InotifyPropertyChanged 인터페이스를 구현하는 유형이어야합니다. 이렇게하면 목록 상자가 단일 항목 객체의 속성 값이 변경되었음을 알립니다. 관측형 수집은 컬렉션이 변경 될 때만 CollectionChanged 이벤트를 올리며 (추가, 제거 된 항목 등)

ObservableCollection의 MSDN 라이브러리 기사에서 인용합니다

바인딩 소스 개체에서 바인딩 대상으로 데이터 값을 전송하는 것을 완전히 지원하려면 바인딩 가능한 속성을 지원하는 컬렉션의 각 객체는 inotifyPropertyChanged 인터페이스와 같은 적절한 속성 변경 알림 메커니즘을 구현해야합니다.

다른 팁

바운드 클라이언트와 데이터 소스 사이의 바인딩에서 변경 알림이 발생하려면 바인딩 유형이 다음과 같습니다.

  • inotifypropertychanged 인터페이스를 구현하십시오 (선호).
  • 바운드 유형의 각 속성에 대한 변경 이벤트를 제공합니다.

둘 다하지 마십시오.

원천: MSDN : InotifyPropertyChanged 인터페이스

Bindinglist를 사용하여 비슷한 문제를 해결했습니다u003CT> 수업.

수집 및 개별 항목 변경에서 ListChanged Event가 발사되었습니다.

.NET 3.5에 도입되었습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top