带有PullToRefresh的CarouselView中的ContentViews列表

时间:2017-08-22 21:51:19

标签: xamarin xamarin.forms scrollview

我有一个包含两个ContentView的列表,其中包含围绕ScrollViews的PullToRefreshLayout plugin。我不确定发生了什么,但是当你进行刷新时,会出现刷新圆圈,但刷新命令永远不会被击中,刷新圈也不会完成。

这是我的CarouselView

<cv:CarouselView 
    Margin="0, 0, 0, 0"
    ItemsSource="{Binding ContentViews}" 
    Position="{Binding CarouselPosition}"
    x:Name="ContentCarousel">
    <cv:CarouselView.ItemTemplate>
       <DataTemplate>
          <ContentView Content="{Binding Content}"/>
       </DataTemplate>
    </cv:CarouselView.ItemTemplate>
 </cv:CarouselView>

以下是我的一个ContentViews的示例。

<ContentView.Content>
    <controls:PullToRefreshLayout 
        IsPullToRefreshEnabled="True"
        RefreshCommand="{Binding BindingContext.RefreshReceivingCommand, Source={x:Reference Name=ReceivingContentView}}"
        IsRefreshing="{Binding IsBusy}" 
        RefreshColor="#4ABDAC">
        <ScrollView 
            HorizontalOptions="FillAndExpand"
            VerticalOptions="FillAndExpand"
            Style="{StaticResource cardScrollViewBackgroundColor}"> 
            <StackLayout 
                Padding="0,0,0,0" 
                VerticalOptions="StartAndExpand" 
                x:Name="MainStackLayout">
            </StackLayout>
        </ScrollView>
    </controls:PullToRefreshLayout>
</ContentView.Content>

老实说,我不确定发生了什么。我在refresh命令上尝试了不同的绑定上下文,但命令永远不会被命中。非常感谢任何想法!

编辑:我找到了一个解决方案,但不是一个巨大的粉丝。

我在ViewModel中创建了一个空的构造函数,用于设置我的刷新命令。然后在ContentView中,我将BindingContext发送到ViewModel。似乎多余,但是,嗯,现在有效,直到我找出xaml绑定。

0 个答案:

没有答案