我正在尝试将我的CarouselPage转换为CarouselView。
在我的CarouselPage中,我有一些ContentPages,它们已转换为ContentViews。
现在,我将ContentViews添加到CarouselView。
<forms:CarouselView ItemsSource="{Binding ContentViews}">
<forms:CarouselView.ItemTemplate>
<DataTemplate>
<ContentView Content="{Binding Content}" />/
</DataTemplate>
</forms:CarouselView.ItemTemplate>
</forms:CarouselView>
// ViewModel
private List<ContentView> _contentViews;
public List<ContentView> ContentViews
{
get { return _contentViews; }
set { SetProperty(ref _contentViews, value); }
}
public TestVM(){{ContentViews = new List<ContentView> { new Selector(), new TestView() };}
它工作正常,但是我丢失了数据绑定。
现在我想知道如何将ViewModel绑定到Carousel视图中的视图,或者我是否可以将它们绑定到Carousel的“父”视图模型。
最佳答案
您的工作非常出色,除了通常情况下,视图模型不应保存内容视图列表(根据定义,应在视图中进行管理)。
我要做的是在内容页面中创建内容视图,就像在xaml.cs中那样:
CarouselView.ItemSource = new List<View>
{
new ContentPage{ BindingContext = myCurrentViewModel},
new ContentPage{ BindingContext = myCurrentViewModel},
...
}