본문 바로가기
Framework/MAUI

[MAUI] 바인딩 모드

by Kor-IT 2022. 8. 17.
반응형

MAUI 바인딩 모드

 

.NET MAUI 바인딩 가능 속성에는 바인딩 가능한 속성을 만들 때 설정되고 개체의 속성에서 사용할 수 있는 기본 바인딩 모드가 있다. 기본 바인딩 모드는 속성이 데이터 바인딩 대상일 때 적용되는 모드를 나타낸다. Rotaion, Scale, Opacity와 같은 대부분의 속성에 대한 기본 바인딩 모드는 OneWay이다. 데이터 바인딩 대상인 경우에는 대상 속성이 원본에서 설정된다. 

여기서 말하는 대상은 데이터 바인딩이 설정된 개체이며, 원본은 데이터 바인딩에서 참조하는 개체 이다.

 

반응형

종류

  • Default
  • OneWay : 원본에서 대상으로 전송
  • OneWayToSource : 대상에서 원본으로 전송
  • TwoWay : 원본과 대상 간에 양방향으로 전송
  • OneTime : 원본에서 대상으로 전송되지만 변경되는 경우에만 전송
<StackLayout>
    <Label
        x:Name="lbael1"
           Text="Data Binding1"
           FontAttributes="Bold"
           FontSize="18"
           HorizontalOptions="Center"
           VerticalOptions="Center" />
    <Slider x:Name="slider1"
            Maximum="1"
            VerticalOptions="Center"
            Value="{Binding Opacity, Source={x:Reference lbael1}, Mode=OneWayToSource}"
            />
    <Label BindingContext="{x:Reference slider1}"
           Text="{Binding Value, StringFormat='Value is {0:#,##0}'}"
           FontAttributes="Bold"
           FontSize="18"
           HorizontalOptions="Center"
           VerticalOptions="Center" />

    <Slider x:Name="slider2"
            Maximum="360"
            VerticalOptions="Center"
            />
    <Label
        x:Name="lbael2"
           Text="Data Binding2"
           FontAttributes="Bold"
           FontSize="18"
           HorizontalOptions="Center"
           VerticalOptions="Center"
           BindingContext="{x:Reference slider2}"
        Rotation="{Binding Value, Mode=OneWay}"
        />
</StackLayout>

바인딩을 어디에서 사용하냐에 따라 Mode 형식이 달라진다. 위의 코드를 보면 비슷한 상황이지만 어디에서 하냐에 따라 Mode 값이 달라지는 걸 확인할 수 있다.

 

 

양방향 바인딩

대부분의 바인딩 가능한 속성에는 기본 바인딩 모드가 'OneWay' 이지만 일부 속성에는 기본 바인딩 모드가 'TwoWay' 인 경우가 있다. 아래와 같이 'TwoWay' 인 경우를 정리했다.

  • DatePicker 의 Date 속성
  • Editor, Entry, SearchBar, EntryCell 의 Text 속성
  • LIstView 의 IsRefreshing 속성
  • MultiPage 의 SelectedItem 속성
  • Picker 의 SelectedIndex, SelectedItem 속성
  • Slider, Stepper 의 Value 속성
  • Switch 의 IsToggled 속성
  • SwitchCell 의 On 속성
  • TImePicker 의 Time 속성

이러한 속성은 데이터 바인딩이 MVVM 패턴과 함께 사용될 때 ViewModel 클래스가 데이터 바인딩 원본이여야 한다.

 

 

 

반응형

'Framework > MAUI' 카테고리의 다른 글

[MAUI] 문자열 서식 지정  (1) 2022.09.06
[MAUI] Viewmodel 바인딩  (1) 2022.08.24
[MAUI] 데이터 바인딩 기본 사항  (1) 2022.08.16
[MAUI] XAML 태그 확장  (0) 2022.08.15
[MAUI] XAML 이란  (0) 2022.06.14

댓글