c# 데이터 바인딩 예제

WPF의 데이터 바인딩은 코드의 데이터를 UI 계층으로 가져오는 기본 방법입니다. 물론 컨트롤에 속성을 수동으로 설정하거나 루프에서 항목을 추가하여 ListBox를 채울 수 있지만 가장 깔끔하고 순수한 WPF 방법은 원본과 대상 UI 요소 사이에 바인딩을 추가하는 것입니다. 또한 ToolTip을 사용하여 오류 메시지를 표시할 수도 있습니다. StartDateEntryForm 및 StartPriceEntryFormTextBox 는 오류 메시지를 표시하는 도구 팁을 만드는 스타일 텍스트스타일텍스트상자를 사용합니다. 다음 예제에서는 텍스트스타일텍스트상자의 정의를 보여 주시고 있습니다. 연결된 속성 HasError 바인딩 바인딩 중 하나 이상이 바인딩된 요소의 속성에 오류가 있는 경우 true입니다. 데이터 원본역할을 하려면 목록이 IList 인터페이스를 구현해야 합니다. 한 가지 예는 System.Array 클래스의 인스턴스인 배열입니다. 이는 데이터 바인딩 모드가 XAML 코드에서 단방향으로 설정되기 때문입니다. 업데이트된 데이터를 표시하려면 양방향 데이터 바인딩을 이해해야 합니다. 그러나 바인딩 소스 개체에 Color 형식 의 속성이 있는 경우 형식 문자열의 속성이 있는 경우 Color? 이 경우 바인딩이 작동하려면 먼저 Color 속성 값을 Background 속성에서 허용하는 것으로 변환해야 합니다. 다음 예제와 같이 IValueConverter 인터페이스를 구현하여 사용자 지정 변환기를 만들어야 합니다. 즉, 항목이 컬렉션에 있을 수 있지만 이 특정 보기는 전체 컬렉션의 특정 하위 집합만 표시하기 위한 것입니다.

데이터의 조건을 필터링할 수 있습니다. 예를 들어, 데이터 바인딩이란 무엇입니까에서 응용 프로그램에서 수행하는 것처럼? 섹션, “거래만 표시” 확인란에는 $25 이상의 비용이 드는 항목을 필터링하는 논리가 포함되어 있습니다. 다음 코드는 해당 확인란을 선택할 때 ShowOnlyBargainsFilter를 필터 이벤트 처리기로 설정하기 위해 실행됩니다: 유효성 검사는 일반적으로 대상의 값이 바인딩 소스 속성으로 전송될 때 발생합니다. 이 문제는 투웨이 및 원웨이토소스 바인딩에서 발생합니다. 다시 말해서 소스 업데이트의 원인은 소스 업데이트 트리거 정보 섹션에 설명된 대로 UpdateSourceTrigger 속성의 값에 따라 달라집니다. 사용 중인 데이터는 반드시 속성의 텍스트 값을 변경하기 위한 것이 아니라 이미지의 소스 또는 표시 텍스트의 색상이나 스타일과 같은 다른 값을 변경하기 위한 것입니다. 변환기는 텍스트 필드를 테이블 셀의 Background 속성에 바인딩하는 등 적절하지 않은 것으로 보이는 속성의 바인딩을 변환하여 이 인스턴스에서 사용할 수 있습니다. 이 시나리오는 컬렉션에 바인딩하는 것 이외에 개체의 단일 속성이 아니라 전체 개체에 바인딩하려는 경우에도 유용합니다. 예를 들어 소스 개체가 형식 문자열이고 문자열 자체에 바인딩하려는 경우. 또 다른 일반적인 시나리오는 여러 속성이 있는 개체에 요소를 바인딩하려는 경우입니다. 이전 예제에서는 DockPanel 요소에 DataContext 속성을 설정하여 바인딩 원본을 지정합니다.

그런 다음 Button은 상위 요소인 DockPanel에서 DataContext 값을 상속합니다. 다시 말해서 바인딩 소스 개체는 바인딩의 네 가지 필수 구성 요소 중 하나입니다. 따라서 바인딩 소스 개체를 지정 하지 않으면 바인딩 은 아무 작업도 수행 되지 않습니다. 두 컨트롤모두 동일한 소스인 listingDataView 정적 리소스에 바인딩되어 있습니다(뷰 만들기 방법 섹션에서 이 리소스의 정의 참조). 이는 단일 개체(이 경우 의 ContentControl)가 컬렉션 뷰에 바인딩되면 뷰의 CurrentItem에 자동으로 바인딩되기 때문에 작동합니다.