Model-View-ViewModel (MVVM) 아키텍처 패턴은 XAML을 염두에 두고 고안되었는데 이 패턴은 기본 데이터(모델)에서 View와 모델 (ViewModel) 사이의 중간 역할을 하는 클래스를 통해 XAML 사용자 인터페이스(View)를 분리한다. View와 ViewModel은 주로 XAML 파일에 정의 된 데이터 바인딩을 통해 연결되고 View의 BindingContext는 일반적으로 ViewModel의 인스턴스이다.
우선 ViewModel이 없는 간단한 예제를 만들어 보는데 System 네임스페이스에 대한 XML 네임스페이스(sys)를 다음과 같이 정의하여 DateTime 구조체를 사용해 보자.
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DateTime.Now 속성의 Year, Month, Day, 시간 속성을 각각의 Label 컨트롤에 바인딩 시키고 TimeOfDay 속성을 TimePicker 컨트롤에 바인딩 시키는 예제 이다.
Grid의 BindingContext로 x:Static 키워드를 통해 DataTime.Now 속성을 정의하자. 이 경우 Grid의 자식컨트롤로 BindingContext 속성은 상속되며 이 속성을 통해 바인딩 시킬 소스 데이터를 지정한다.
자마린폼즈, XAML 데이터바인딩 실습_Xamarin.Forms, XAML을 이용한 Data Binding, Xamarin기초교육, 자마린교육, 자마린강좌
1. www.topcredu.co.kr
작성자 : 이종철
4.7.4 MVVM에서 데이터 바인딩 사용하기
Model-View-ViewModel (MVVM) 아키텍처 패턴은 XAML을 염두에 두고 고안되었는데 이 패
턴은 기본 데이터(모델)에서 View와 모델 (ViewModel) 사이의 중간 역할을 하는 클래스를 통
해 XAML 사용자 인터페이스(View)를 분리한다. View와 ViewModel은 주로 XAML 파일에 정
의 된 데이터 바인딩을 통해 연결되고 View의 BindingContext는 일반적으로 ViewModel의
인스턴스이다.
우선 ViewModel이 없는 간단한 예제를 만들어 보는데 System 네임스페이스에 대한 XML 네
임스페이스(sys)를 다음과 같이 정의하여 DateTime 구조체를 사용해 보자.
xmlns:sys="clr-namespace:System;assembly=mscorlib"
DateTime.Now 속성의 Year, Month, Day, 시간 속성을 각각의 Label 컨트롤에 바인딩 시키고
TimeOfDay 속성을 TimePicker 컨트롤에 바인딩 시키는 예제 이다.
Grid의 BindingContext로 x:Static 키워드를 통해 DataTime.Now 속성을 정의하자. 이 경우
Grid의 자식컨트롤로 BindingContext 속성은 상속되며 이 속성을 통해 바인딩 시킬 소스 데
이터를 지정한다.