Xamarin.Forms 3.6包含了CarouselView,所以我不能再使用nuget包了,但是出厂版本似乎缺少一些功能,更具体地说,指标似乎完全丢失了。
这是我的旧代码,现在不再编译:
// Create the carousel
_carouselView = new CarouselView()
{
VerticalOptions = LayoutOptions.FillAndExpand,
HorizontalOptions = LayoutOptions.FillAndExpand,
};
_carouselView.ItemTemplate = template;
_carouselView.SetBinding(ItemsView.ItemsSourceProperty, nameof(_viewModel.CarouselItems));
_carouselView.SetBinding(CarouselView.PositionProperty, nameof(_viewModel.Position));
// Create page-indicator
var indicator = new CarouselIndicators { ItemsSource = _viewModel.CarouselItems };
indicator.Margin = new Thickness(20, 20, 20, 0);
indicator.SetBinding(CarouselIndicators.PositionProperty, nameof(_viewModel.Position));
3.6中不存在CarouselView.Position和CarouselIndicators :(我需要在3.6中手动实现指标吗?
答案 0 :(得分:2)
由于Xamarin.Forms 3.6包含CarouselView的实现,因此,如果您从使用Xamarin.Forms <3.6和Xamarin.Forms.CarouselView升级到Xamarin.Forms 3.6,它将会崩溃。因为
Position
属性许多项目切换到CarouselViews的社区实现:
您的解决方案将是:
_carouselView.SetBinding(CarouselView.PositionProperty, nameof(_viewModel.Position));
到
_carouselView.SetBinding(CardsView.SelectedIndexProperty, nameof(_viewModel.Position));