x:Bind
UnoPlatform 공식 블로그에서 제공하는 Uno x:Binding 기술에 대한 이야기를 소개합니다.
Uno 개발을 생각하고 계신 분들은 시작에 앞서 한번 읽어보면 좋을 것 같습니다!!
공식 제공 예제 - AdvancedXBind
- xBinding 문법
- IValueConverter
- ViewModel
- 종속성 주입 (DI or IoC)
- 메서드 바인딩
그리고 내용 중에서 메서드 바인딩을 한번 살펴보겠습니다.
(a.k.a 멀티바인딩)
View에서 메서드를 직접 바인딩 할 수 있습니다.
<TextBlock Grid.Row="4"
Grid.Column="1"
Text="{x:Bind ViewModel
.CalculateDensity(ViewModel.Planet.Mass, ViewModel.Planet.Diameter)}"/>
ViewModel에서는 마치 컨버터처럼 메서드 생성
public double CalculateDensity(double mass, double diameter)
{
// calculate volume (convert diameter in KM to radius in M)
double volume = (4 / 3) * Math.PI * Math.Pow(diameter * 500, 3);
return mass / volume;
}