[英]Xamarin Forms Binding Object with List in property
我的項目中有以下 class
public class ListagemVideos
{
public int codplaylist { get; set; }
public string titulo { get; set; }
public string url { get; set; }
public string descricao { get; set; }
}
public class PlayList
{
public int codplaylist { get; set; }
public string playlist { get; set; }
public string descricao { get; set; }
public ObservableCollection<ListagemVideos> videos { get; set; } = new ObservableCollection<ListagemVideos>();
}
我的 XAML 文件
<AbsoluteLayout BackgroundColor="White" VerticalOptions="FillAndExpand">
<CollectionView ItemsSource="{Binding ListaVideosCursos}">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout>
<Label
FontFamily="titibold"
FontSize="40"
Text="{Binding playlist}" />
<Label
FontFamily="titiregular"
FontSize="20"
Text="{Binding descricao}" />
<ScrollView Orientation="Horizontal">
<StackLayout Margin="10">
<Label
x:Name="lblvideorecente"
FontFamily="titiregular"
FontSize="20"
Text="{Binding videos.titulo}" />
</StackLayout>
</ScrollView>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</AbsoluteLayout>
ListaVideosCursos 是接收對象數據的 ObservableCollection 的名稱,我的問題以及我所看到的許多問題是如何將列表視頻 object(標題,url,descricao)的屬性綁定到我的集合
您需要設置StackLayout
的源視頻,以幫助Label
找到 titulo 屬性的值。
你可以參考下面的代碼。
Xaml:
<AbsoluteLayout BackgroundColor="White" VerticalOptions="FillAndExpand">
<CollectionView ItemsSource="{Binding playLists}">
<CollectionView.ItemTemplate>
<DataTemplate>
<StackLayout>
<Label
FontFamily="titibold"
FontSize="40"
Text="{Binding playlist}" />
<Label
FontFamily="titiregular"
FontSize="20"
Text="{Binding descricao}" />
<ScrollView Orientation="Horizontal">
<StackLayout Margin="10" BindableLayout.ItemsSource="{Binding videos}">
<BindableLayout.ItemTemplate>
<DataTemplate>
<Label
x:Name="lblvideorecente"
FontFamily="titiregular"
FontSize="20"
Text="{Binding titulo}" />
</DataTemplate>
</BindableLayout.ItemTemplate>
</StackLayout>
</ScrollView>
</StackLayout>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
</AbsoluteLayout>
后面的代碼:
public partial class MainPage : ContentPage
{
public MainPage()
{
InitializeComponent();
this.BindingContext = new ListagemVideosViewModel();
}
}
public class ListagemVideosViewModel
{
public ObservableCollection<PlayList> playLists { get; set; }
public ListagemVideosViewModel()
{
playLists = new ObservableCollection<PlayList>()
{
new PlayList(){ codplaylist=1, descricao="A", playlist="aa", videos=new ObservableCollection<ListagemVideos>(){ new ListagemVideos() { codplaylist=1, descricao="A2", titulo= "a_titulo", url= "A_url" } }},
new PlayList(){ codplaylist=2, descricao="B", playlist="bb", videos=new ObservableCollection<ListagemVideos>(){ new ListagemVideos() { codplaylist=2, descricao="B2", titulo= "b_titulo", url= "B_url" } }}
};
}
}
public class ListagemVideos
{
public int codplaylist { get; set; }
public string titulo { get; set; }
public string url { get; set; }
public string descricao { get; set; }
}
public class PlayList
{
public int codplaylist { get; set; }
public string playlist { get; set; }
public string descricao { get; set; }
public ObservableCollection<ListagemVideos> videos { get; set; } = new ObservableCollection<ListagemVideos>();
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.