0

私はすべての画面で同じヘッダーを持つアプリケーションを作成していますので、アプリケーションのその部分のControlTemplateを作成し、ボタンをいくつか入れてください。私はそれにかなり満足しています。Xamarinはヘッダー用のControlTemplate、フッターとバインディング用の別のコントロール

3つの画面のフッタはほとんど同じですが、テキストの色と画像が異なります。私はフッターのために別のControlTemplateを作ったが、現在表示されているページに応じて、バインディングを持つイメージのIsVisibleプロパティを操作したいが、どうやってそれを行うのか分からない。

私はコンバータを作成する必要があることを知っていますが、それは複雑ではないようですが、実際にこれらのプロパティの値をバインドする方法はわかりません。

ControlTemplateは、どちらもアプリケーションレベルで定義されています。

これは多分、これは間違っている、私はそれらを使用する方法の例です:

<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を使用して、すべてのページにActivityIndi​​catorを表示します。

インジケータのプロパティIsVisibleについては、 ページのIsBusyプロパティでバインドします。

そして、これは私がのControlTemplateのXAMLでそれをバインドする方法です:私は、各ページのインジケータの色を変更したい場合は、私はページとそれを結合するためのBusyColorプロパティを定義することができ

IsVisible="{TemplateBinding BindingContext.IsBusy}" 

Color="{TemplateBinding BindingContext.BusyColor}" 
関連する問題