wpf 데이터 바인딩 예제

좀 더 복잡한 예를 통해 바인딩 프레임워크의 몇 가지 다른 기능을 살펴보겠습니다. 이러한 클래스의 요약은 아래 표시됩니다 (INotifyPropertyChanged 구현 명확성을 위해 생략): 위의 XAML에서 우리는 사람 인스턴스의 WorkAddress 속성에 테두리 요소의 DataContext를 바인딩합니다 (이 UI의 DataContext로 설정되었습니다) 코드 숨결)을 참조하십시오. 따라서 Border의 모든 자식은 Address 인스턴스를 DataContext로 사용하므로 속성에 직접 바인딩할 수 있습니다. 이렇게 하면 아래 그림과 같이 주소에 바인딩된 UI 내에서 `island`가 만들어집니다. 동일한 관계를 반복적으로 탐색하는 대신 UI의 `지역`을 WorkAddress 속성에 바인딩할 수 있습니다. 이 게시물을 통해 데이터 바인딩및 설정 방법에 대한 짧은 소개를 제공하고 자합니다. 그리고 거기 당신은 간다. 이제 뷰는 완전히 분리된 컨텍스트에 대해 알고 있습니다. 속성에 대한 정보를 제공하고 F5를 눌러 솔루션을 실행하면 다음과 같은 것을 볼 수 있습니다.이 블로그 게시물에서 바인딩 태그 확장을 살펴보고 바인딩을 만드는 간결한 메커니즘을 제공하는 방법을 살펴봅습니다. 또한 바인딩의 기본 소스인 DataContext가 Silverlight 및 WPF 바인딩 프레임워크에서 중추적인 역할을 하는 방법도 확인했습니다. 마지막으로 바인딩을 사용하여 DataContext를 `전환`하여 UI 내에서 바인딩 `아일랜드`를 만드는 방법을 확인했습니다. 데이터 바인딩은 두 가지 유형의 – 단방향 데이터 바인딩 및 양방향 데이터 바인딩. Datacontext 속성은 데이터를 UI로 설정하는 데 사용됩니다.

바인딩의 소스를 명시적으로 정의하지 않으면 데이터 컨텍스트를 기본값으로 지정합니다. 이는 사용자 인터페이스를 한 번만 업데이트하는 경우를 제외하고 OneWay와 동일한 동작을 가집니다. 바인딩에 대 한 기본 선택 이어야 합니다. 일반적인 예는 부울 멤버를 가시성 속성에 바인딩하는 것입니다. 가시성은 표시, 축소 또는 숨길 수 있는 열거형 값이므로 값 변환기가 필요합니다. 데이터 바인딩은 단방향(소스 -> 대상 또는 대상 <– 원본) 또는 양방향(소스 대상)일 수 있습니다. 이 측면에서 데이터는 양쪽에서 업데이트되고 있습니다. 즉, 소스 및 대상. UI에서 변경 사항이 있으면 비즈니스 모델을 업데이트하고 그 반대의 경우도 마찬가지입니다. C # (뒤에 있는 코드)에서 바인딩을 만드는 코드를 보는 것은 매우 드문 일이며, 이는 더 간단하고 우아한 방법이 있기 때문입니다.

첫째, 위의 코드를 변경하여 모든 바인딩을 제거하고 대신 페이지의 DataContext를 편집하려는 이벤트로 설정합니다: 대부분의 응용 프로그램은 XAML 태그 내에서 바인딩을 만듭니다… 그리고 그것은 우리가 다음에 할 것입니다 정확히! 다음 예제에서는 boolen을 가시성 속성으로 변환하는 간단한 변환기를 보여 주습니다. 이러한 변환기는 이미 .NET 프레임워크의 일부입니다. DataContext 속성은 자식 요소에 해당 값을 상속합니다. 따라서 우수한 레이아웃 컨테이너에 DataContext를 설정할 수 있으며 해당 값은 모든 자식 요소에 상속됩니다. 이 기능은 동일한 데이터 개체의 여러 속성에 바인딩된 양식을 빌드하려는 경우에 매우 유용합니다. 이제 Address가 INotifyPropertyChanged를 구현하기 때문에 UI에 바인딩된 개체의 거리 또는 도시를 변경하면 바인딩 프레임워크에서 이 변경 사항을 바인딩 대상(예: TextBox 인스턴스)으로 푸시하는 작업을 처리합니다. 그러나 주소 인스턴스를 완전히 대체하면 어떻게 됩니까? 예를 들어… 데이터 바인딩은 일반적으로 {Binding} 태그 확장을 사용하여 XAML에서 수행됩니다. 다음 예제에서는 TextBox의 텍스트와 형식된 값을 반영하는 레이블 간의 간단한 바인딩을 보여 주었습니다. XAML을 업데이트하고 이 이벤트를 편집하는 데 사용되는 컨트롤의 이름을 제거하고(양식 코드 숨미기에 액세스할 수 있도록 명명한 것만) 다음과 같이 바인딩을 추가합니다. 대상(즉, 데이터를 표시하는 개체) FrameworkElement에서 파생된 모든 WPF 컨트롤에는 DataContext 속성이 있습니다.

Thanks! You've already liked this