私は...独立したContentPage
などCarouselPage
でContentPage
のためにコントロールテンプレートを再利用しようとしてこだわっているXamarinフォームはContentPageとCarouselPageのためのControlTemplateを共有
主な問題は、CarouselPage
にはないということですControlTemplate
プロパティをサポートします。したがって、CarouselPage
のDataTemplate
にContentPage
を挿入する必要があります。このContentPage
はControlTemplate
が割り当てられますが、BindingContext
がViewModel
のルートではないという問題が発生します。
私はまた、コードの問題を説明してみましょう:
以下に示すように、私はテンプレートを作成しました。
<!-- Loader view template -->
<ControlTemplate x:Key="LoaderViewTemplate">
<AbsoluteLayout Padding="0" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand">
<!-- Content -->
<ContentPresenter AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" />
<!-- Loader -->
<BoxView IsVisible="{TemplateBinding BindingContext.IsBusy}" BackgroundColor="Green" Opacity="0.5" AbsoluteLayout.LayoutBounds="0, 0, 1, 1" AbsoluteLayout.LayoutFlags="All" />
<StackLayout IsVisible="{TemplateBinding BindingContext.IsBusy}" Padding="6" BackgroundColor="Gray" Orientation="Horizontal" AbsoluteLayout.LayoutBounds="0.5, 0.5, -1, -1" AbsoluteLayout.LayoutFlags="PositionProportional">
<ActivityIndicator Color="White" IsRunning="{TemplateBinding BindingContext.IsBusy}" VerticalOptions="Center" WidthRequest="20" HeightRequest="20" />
<Label TextColor="White" Text="Loading..." VerticalOptions="Center" />
</StackLayout>
</AbsoluteLayout>
</ControlTemplate>
テンプレートは、以下に示すContentPage
に対して正しく働いです。
<ContentPage ...
ControlTemplate="{StaticResource LoaderViewTemplate}">
<StackLayout HorizontalOptions="Center" VerticalOptions="Center">
...
</StackLayout>
</ContentPage>
しかし、以下に示すように、それはCarouselPage
でを動作しません。
<CarouselPage ...
ItemsSource="{Binding Tournament.Rounds}">
<CarouselPage.ItemTemplate>
<DataTemplate>
<ContentPage ControlTemplate="{StaticResource LoaderViewTemplate}">
...
</ContentPage>
</DataTemplate>
</CarouselPage.ItemTemplate>
</CarouselPage>
CarouselPage
でBindingContext
はTournament.Rounds
コレクションからTournamentRoundModel
になります。
は、いずれかが、私は独立したContentPage
とCarouselPage
ネストされたContentPage
内ViewModel
のルートに達することができる方法についてのアイデアを持っていますか?
敬具、 ヨップMiddelkamp
これは私の問題を解決しました!ありがとうG. Sharada! –