observablecollection 예제

이 예제에서는 항목이 추가되거나 제거될 때 알림을 제공하는 컬렉션 클래스인 ObservableCollection 클래스에서 파생된 컬렉션을 만들고 바인딩하는 방법을 보여 주어집니다. 다행히이 작업을 만드는 데 필요한 모든 “배관”은 XAML로 구워지습니다. 그러나 개발자가 이 작업을 수행하려면 클래스에서 INotifyPropertyChanged 인터페이스를 구현해야 합니다. INotifyPropertyChanged를 구현함으로써, 당신의 클래스는 말한다 “당신은 나를 관찰 할 수 있습니다, 내가 변경될 때 알려 드리겠습니다.” 나는 당신을 보여 줄 수있는 완전한 예제가 없지만, 그러한 구현이 어떻게 작동하는지 보여 줄 수있는 가장 간단한 예를 보여 드리겠습니다 : 클래스 샘플 : INotifyPropertyChanged { 공개 이벤트 PropertyChangedEventHandler PropertyChanged; public int ID { get; set; } 개인 문자열 이름 = String.Empty; 공개 문자열 이름 { get { 반환 this.name; } set {if (값 != this.name) { this.name = 값; NotifyProperty변경(“이름”); } } } } } 개인 무효 NotifyPropertyChanged ([CallerMemberName] 문자열 속성 이름 = “”) { 경우 (PropertyChanged != null) { 속성 변경 (이, 새 속성변경 EventArgs (재산 이름)); } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } } INotifyPropertyChanged를 구현하여 우리는 속성 변경이라는 이벤트를 제기하는 데 동의해야합니다. 이 클래스는 사용자 인터페이스 클래스와 같은 다른 클래스에 이 클래스의 인스턴스에 대한 변경 사항이 발생했음을 알려주는 기본 배선입니다(이제 사용자 인터페이스의 이러한 변경 내용을 반영하도록 직접 업데이트하십시오). 이 이벤트는 Name 속성에서 Set 작업이 호출될 때마다 호출되는 NotifyPropertyChanged() 메서드에서 트리거됩니다. 즉, 이와 같은 코드 줄이 실행될 때:샘플 mySample = 새 샘플();mySample.Name = “Bob”;… PropertyChanged 이벤트가 발생하며 이 이벤트를 수신대기하는 모든 클래스(예: Phone API의 특정 사용자 인터페이스 클래스/컨트롤)는 표시되는 데이터를 새로 고칠 수 있습니다. 이 모든 것을 말했기 때문에 허브 앱 템플릿에는 INotifyPropertyChanged를 직접 구현하는 클래스가 없습니다. 대신 내부적으로 INotifyPropertyChanged 인터페이스를 구현하는 관찰 가능컬렉션(사용자 지정 클래스, ObservableDictionary)을 사용합니다.

따라서 ViewModel에서 뷰에 개체의 컬렉션을 노출하기 위해 관측 가능한 컬렉션을 사용하는 한 컬렉션 수준에서 관찰 가능성을 얻을 수 있습니다. 관찰 가능컬렉션 본질적으로 목록입니다 관찰의 추가 초능력을 가진. 이것에 대한 몇 가지 중요한 측면. SampleDataGroup에는 관찰 가능한 컬렉션인 항목 속성이 . 따라서 새 SampleDataItems가 Items 속성에서 추가되거나 제거될 때마다 PropertyChanged 이벤트는 Items 컬렉션에 바인딩되는 모든 사용자 인터페이스 요소의 컬렉션에 의해 발생합니다. 불행하게도, 이것은 우리가 지금 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 서 이것 에서 일어나는 것을 볼 수 없기 때문에 이것은 조금 anticlimactic.

Dette indlæg blev udgivet i Ikke-kategoriseret af admin. Bogmærk permalinket.

Der er lukket for kommentarer.