MAUI 바인딩 관련하여 두 가지의 차이가 뭔지 여쭤봅니다.

안녕하세요.
마이크로 소프트에서 제공하는 기초 튜토리얼을 보면서 그대로 따라하면서 시도를 해 보고 있습니다.
그리고 데이터를 바인딩하는 부분에서 한 가지 의문점이 생겨 질문을 작성합니다.

우선 현재 진행 상황은 아래와 같습니다.

  1. .xaml에서 xmlns:models=“clr-namespace:Notes.Models”
  2. <ContentPage.BindingContext> <models:About(모델 클래스)/> </ContentPage.BindingContext>
  3. {Binding Message}

위와 같은 방법으로 XAML에서 바인딩하여 사용하였습니다.

그런데 About(모델 클래스)에서

  1. public string Message = “Hello World!”
  2. public string Message => “Hello World!”

이 두 가지 중 1번으로 하게 될 경우 디버그에서 찾을 수 없다며 바인딩에 실패 했다는 메시지가 출력됩니다.
그리고 2번으로 할 경우 정상적으로 출력 됩니다. 그리고 이와 관련하여 왜 그런 것인지 의문점이 생겨 질문을 남깁니다.

3 Likes

첨부하신 모델 클래스 코드 예제 중 첫 번째는 필드고, 두 번째는 프로퍼티입니다.

MAUI 뿐만 아니라 WPF에서도 필드에 대한 바인딩은 지원하지 않습니다.

필드에 대한 바인딩을 왜 지원하지 않는지 고민해 본 적은 없는데 궁금하긴 하네요. 값 변경 시 Notify가 까다롭기 때문이 아닐까요.

6 Likes

위에 필드로 선언해도 .xaml.cs에서 BindingContext에서 Message를 읽어오면 정상적으로 잘되는데
왜 XAML에서만 하면 프로퍼티는 되는데 필드는 안되나 궁금했는데 그냥 지원을 안하는거였군요.
답변 감사합니다!

2 Likes