我正在尝试将我的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},
...
}

10-02 20:26