Xamarin.Forms 데이터 바인딩Xamarin.Forms Data Binding

샘플 다운로드 샘플 다운로드Download Sample Download the sample

데이터 바인딩은 두 개체의 속성을 연결하여 한 속성의 변경 내용이 다른 속성에 자동으로 반영되도록 하는 기술입니다. 데이터 바인딩은 MVVM(Model-View-ViewModel) 애플리케이션 아키텍처의 필수적인 부분입니다.Data binding is the technique of linking properties of two objects so that changes in one property are automatically reflected in the other property. Data binding is an integral part of the Model-View-ViewModel (MVVM) application architecture.

데이터 연결 문제The Data Linking Problem

Xamarin.Forms 애플리케이션은 하나 이상의 페이지로 구성되며 각 페이지에는 view라는 여러 user-interface 개체가 포함됩니다.A Xamarin.Forms application consists of one or more pages, each of which generally contains multiple user-interface objects called views. 프로그램의 주요 작업 중 하나는 이러한 뷰를 동기화된 상태로 유지하고, 여기에 나타나는 다양한 값이나 선택 내용을 추적하는 것입니다.One of the primary tasks of the program is to keep these views synchronized, and to keep track of the various values or selections that they represent. 뷰는 기본 데이터 소스의 값을 나타내는 경우가 많으며 사용자는 이러한 뷰를 조작하여 해당 데이터를 변경합니다.Often the views represent values from an underlying data source, and the user manipulates these views to change that data. 뷰가 변경되면 기본 데이터에 변경 사항이 반영되어야 하고, 마찬가지로 기본 데이터가 변경되면 뷰에 변경 사항이 반영되어야 합니다.When the view changes, the underlying data must reflect that change, and similarly, when the underlying data changes, that change must be reflected in the view.

이 작업을 성공적으로 처리하기 위해서는 이러한 뷰 또는 기본 데이터의 변경 내용을 프로그램에 알려야 합니다.To handle this job successfully, the program must be notified of changes in these views or the underlying data. 일반적인 솔루션은 변경 사항이 발생하면 신호를 보내는 이벤트를 정의하는 것입니다.The common solution is to define events that signal when a change occurs. 그러면 이러한 변경 사항을 알리는 이벤트 처리기를 설치할 수 있습니다.An event handler can then be installed that is notified of these changes. 이것은 한 개체에서 다른 개체로 데이터를 전송하여 응답합니다.It responds by transferring data from one object to another. 단, 뷰가 많은 경우에는 이벤트 처리기도 많아야 하고 많은 코드가 관련됩니다.However, when there are many views, there must also be many event handlers, and a lot of code gets involved.

데이터 바인딩 솔루션The Data Binding Solution

데이터 바인딩은 작업을 자동화하고 이벤트 처리기를 불필요하게 만듭니다.Data binding automates this job, and renders the event handlers unnecessary. (데이터 바인딩 인프라에 이벤트가 사용되기 때문에 이벤트는 여전히 필요합니다.) 데이터 바인딩은 코드나 XAML로 구현할 수 있지만 코드 숨김 파일의 크기를 줄이는 데 도움이 되는 XAML이 훨씬 더 일반적입니다.(The events are still necessary, however, because the data-binding infrastructure uses them.) Data bindings can be implemented either in code or in XAML, but they are much more common in XAML where they help to reduce the size of the code-behind file. 이벤트 처리기의 프로시저 코드를 선언적 코드나 마크업으로 바꾸면 애플리케이션이 간소화되고 명확해집니다.By replacing procedural code in event handlers with declarative code or markup, the application is simplified and clarified.

데이터 바인딩과 관련된 두 개체 중 하나는 거의 항상 View에서 파생되고 페이지의 시각적 인터페이스 일부를 형성하는 요소입니다.One of the two objects involved in a data binding is almost always an element that derives from View and forms part of the visual interface of a page. 다른 개체는 다음 중 하나입니다.The other object is either:

  • 대개 같은 페이지에 있는, 다른 View 파생 개체Another View derivative, usually on the same page.
  • 코드 파일의 개체An object in a code file.

DataBindingDemos 샘플에 포함된 것과 같은 데모 프로그램에서 두 View 파생 개체 간의 데이터 바인딩은 명확성과 간소함을 위해 표시되는 경우가 많습니다.In demonstration programs such as those in the DataBindingDemos sample, data bindings between two View derivatives are often shown for purposes of clarity and simplicity. 단, View와 다른 개체 간의 데이터 바인딩에 동일한 원칙이 적용될 수 있습니다.However, the same principles can be applied to data bindings between a View and other objects. 애플리케이션이 MVVM(Model-View-ViewModel) 아키텍처를 사용하여 빌드된 경우, 기본 데이터가 있는 클래스를 viewmodel이라고 합니다.When an application is built using the Model-View-ViewModel (MVVM) architecture, the class with underlying data is often called a viewmodel.

데이터 바인딩은 다음과 같은 문서 시리즈를 통해 살펴봅니다.Data bindings are explored in the following series of articles:

기본 바인딩Basic Bindings

데이터 바인딩 원본과 대상의 차이를 알아보고 코드와 XAML에서 간단한 데이터 바인딩을 살펴봅니다.Learn the difference between the data binding target and source, and see simple data bindings in code and XAML.

바인딩 모드Binding Mode

바인딩 모드를 통해 두 개체 간의 데이터 흐름을 제어하는 방법을 알아봅니다.Discover how the binding mode can control the flow of data between the two objects.

문자열 서식String Formatting

데이터 바인딩을 사용하여 개체 형식을 문자열로 지정하고 표시합니다.Use a data binding to format and display objects as strings.

바인딩 경로Binding Path

데이터 바인딩의 Path 속성을 심층적으로 살펴보고 하위 속성 및 컬렉션 멤버에 액세스합니다.Dive deeper into the Path property of the data binding to access sub-properties and collection members.

바인딩 값 변환기Binding Value Converters

바인딩 값 변환기를 사용하여 데이터 바인딩 내에서 값을 변경합니다.Use binding value converters to alter values within the data binding.

상대 바인딩Relative Bindings

상대 바인딩을 사용하여 바인딩 대상의 위치에 상대적으로 바인딩 소스를 설정합니다.Use relative bindings to set the binding source relative to the position of the binding target.

바인딩 대체Binding Fallbacks

바인딩 프로세스가 실패할 경우 사용할 대체 값을 정의하여 데이터 바인딩을 더욱 강력하게 만듭니다.Make data bindings more robust by defining fallback values to use if the binding process fails.

명령 인터페이스The Command Interface

데이터 바인딩으로 Command 속성을 구현합니다.Implement the Command property with data bindings.

컴파일된 바인딩Compiled Bindings

컴파일된 바인딩을 사용하여 데이터 바인딩 성능을 향상시킵니다.Use compiled bindings to improve data binding performance.