0

모든 화면에 동일한 헤더가있는 App을 만들고 있으므로, 해당 부분에 대한 ControlTemplate을 만들고 일부 버튼을 넣으면 작동합니다. 나는 그것에 꽤 만족한다.Xamarin은 헤더, 꼬리말 및 바인딩 용으로 ControlTemplate을 형성합니다.

3 개의 화면에는 거의 동일한 바닥 글이 있으며 텍스트 색상과 이미지가 다릅니다. 꼬리말을위한 또 다른 ControlTemplate을 만들었고 현재 어떤 페이지가 표시되어 있는지에 따라 바인딩이있는 이미지의 IsVisible 속성을 조작하고 싶습니다. 그러나이를 수행하는 방법을 알 수는 없습니다.

저는 변환기를 작성해야한다는 것을 알고 있습니다. 복잡하지는 않지만 실제로 이러한 속성의 값을 바인딩하는 방법을 찾을 수는 없습니다.

두 ControlTemplates는 응용 프로그램 수준에서 정의됩니다.

내가 그들을 사용하는 방법의 예입니다, 어쩌면 이것은 잘못된 것입니다 :

<ContentView ControlTemplate="{StaticResource Header}"> 
<!--This is the actuall page content--> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="9*"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
    <!--Content of the page!--> 
<Label Text="Welcome to Xamarin.Forms!" 
     VerticalOptions="Center" 
     HorizontalOptions="Center" 
     Grid.Row="0"/> 
<!--Footer of the page!--> 
    <ContentView ControlTemplate="{StaticResource BuySellPayFooter}" 
          Grid.Row="1"/> 
    </Grid> 
</ContentView> 

나는 바닥 글에 일부 클래스의 속성을 결합해야합니다. 그것을하는 방법? 그것은 성취 할 수 있습니까?

답변

0

ControlTemplate을 사용하여 모든 페이지에 ActivityIndicator를 표시합니다.

표시기의 IsVisible 속성에 대해 페이지의 IsBusy 속성으로 바인딩합니다.

그리고이 내가 된 ControlTemplate의 XAML에서 바인딩하는 방법이다 : 나는 각 페이지에 표시의 색상을 변경하려면, 나는 페이지를 바인딩 BusyColor 속성을 정의 할 수 있습니다

IsVisible="{TemplateBinding BindingContext.IsBusy}" 

:

Color="{TemplateBinding BindingContext.BusyColor}" 
관련 문제