매개변수가 있는 View를 Xaml에서 선언하는 방법이 궁금합니다.

[Maui] 질문 리스트

  • BindingContext = ViewModel을 매개변수 없이 설정하는 방법
  • 매개변수가 있는 View를 Xaml에서 사용하는 방법

image

ViewModel에 매개변수가 있어서 발생하는 문제입니다.

BindingContextIoC로 설정해서 필요합니다…

Sample Link

뷰에 매개변수를 제거하시고
뷰의 비하인드코드에 있는 생성자에

BindingContext=  MauiApplication.Current.Services.GetService<뷰모델명>();

이렇게 사용하실 수있습니다.

  • 위 코드는 안드로이드용이며, os별로 다르니 참고 바랍니다!
1개의 좋아요

MAUI는 기본적으로 XAML 2009 네임페이스를 x 접두어로 설정하고 있기때문에 XAML을 통한 객체 생성 시 2009에서 지원하는 x:Arguments 속성을 통해 아래와 같이 생성자 파라메터를 지정할 수 있습니다.

<ContentPage.Content>
  <View:ViewWithParameter x:Name="_notifyPermissionView" BindingContext="{Binding NotifyPermissionsViewModel}">
    <x:Arguments>
      <View:ViewModel />
    </x:Arguments>
  </View:ViewWithParameter>
</ContentPage.Content>

단, Designer에서 에러로 표시되기는 하지만 정상적으로 동작합니다.

2개의 좋아요