在CarouselView - Xamarin里面的ListView中绑定Itemsource

时间:2017-07-09 08:56:46

标签: c# listview xamarin xamarin.mac

我试图将ListView放在CarouselView中,但元素绑定不起作用。

如果我注释掉ListView,该项目将正常工作 错误是

  

绑定:在'上找不到'Contenido'属性   'App.ViewModels.FeedListViewModel',目标属性:
  'Xamarin.Forms.ListView.ItemsSource'

代码如下:

视图模型

public class Feed
{
    public int IdFeed { get; set; }
    public String Title { get; set; }
    public bool HasNewElements { set; get; }
    public ObservableCollection<NewsFeedDocument> Contenido { get; set; }
}

public class FeedListViewModel : MenuViewModel
{   
    public ObservableCollection<Feed> Feeds { get; set; }

    public FeedListViewModel()
    {
        Feeds = new ObservableCollection<Feed>();
        for (int i = 0; i <= 12; i++)
        {
            //Creamos lista de elementos Feed
            NewsFeedDocument documento = new NewsFeedDocument();
            documento.Titulo = "TITULO dasd dsa dsa dsa dsa";
            ObservableCollection<NewsFeedDocument> ElementsX = new ObservableCollection<NewsFeedDocument>();
            ElementsX.Add(documento);
            Feeds.Add(new Feed
            {
                IdFeed = i ,Title = "SECTOR" + i,
                Contenido = ElementsX
            });
        }
        Position = 0;
    }

    private int _position = 0;

    public int Position 
    {
        get { return _position; }
        set { _position = value; RaisePropertyChanged(() => Position); }
    }
}   
}

XAML

<cv:CarouselView x:Name="FeedsItemsCarousel" Grid.Row="2" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand"  
                        Position="{Binding Position, Mode=TwoWay}" 
                        ItemsSource="{Binding Feeds}">
    <cv:CarouselView.ItemTemplate>
        <DataTemplate>
            <Grid>
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="Auto"/>
                </Grid.RowDefinitions>
                <!--<Image Grid.RowSpan="2" Aspect="AspectFill" Source="{Binding ImageUrl}"/>-->
                <StackLayout Grid.Row="1" BackgroundColor="#80000000" Padding="12">
                    <Label TextColor="White" Text="{Binding Title}" FontSize="16" HorizontalOptions="Center" VerticalOptions="CenterAndExpand"/>
                </StackLayout>

            </Grid>
            <StackLayout> 
                <ListView x:Name="FeedListItem" ItemsSource="{Binding Contenido}" RowHeight="120">
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <ViewCell>
                                <StackLayout Orientation="Vertical" VerticalOptions="FillAndExpand" HorizontalOptions="Fill" BackgroundColor="White" Padding="10">
                                    <Grid>
                                        <Grid.RowDefinitions>
                                            <RowDefinition Height="*" />
                                        </Grid.RowDefinitions>
                                        <Grid.ColumnDefinitions>
                                            <ColumnDefinition Width="*" />
                                            <ColumnDefinition Width="100" />
                                        </Grid.ColumnDefinitions>
                                        <Label Text="{Binding Titulo}"  Style="{StaticResource TituloL}" Grid.Row="0" Grid.Column="0" />

                                    </Grid>
                                    <StackLayout Orientation="Horizontal">

                                    </StackLayout>
                                </StackLayout>
                            </ViewCell>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
            </StackLayout>
        </DataTemplate>
    </cv:CarouselView.ItemTemplate>

0 个答案:

没有答案