我有一个包含两个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绑定。