C# 将数据绑定到xamarin中的子Listview元素
我正在尝试以Xamarin表单创建列表视图控件。列表视图的datatemplate中包含另一个listview。正在从viewmodel绑定数据。但首先,内部列表视图不显示任何数据。但如果尝试滚动列表,将显示数据C# 将数据绑定到xamarin中的子Listview元素,c#,mvvm,xamarin,viewmodel,xamarin.forms,C#,Mvvm,Xamarin,Viewmodel,Xamarin.forms,我正在尝试以Xamarin表单创建列表视图控件。列表视图的datatemplate中包含另一个listview。正在从viewmodel绑定数据。但首先,内部列表视图不显示任何数据。但如果尝试滚动列表,将显示数据 <ListView ItemSource="{Binding ParentSource}"> <ListView.ItemTemplate > <DataTemplate> <ViewCell
<ListView ItemSource="{Binding ParentSource}">
<ListView.ItemTemplate >
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Delete" />
</ViewCell.ContextActions>
<ViewCell.View>
<Label Text="{Binding Prop1}"/>
<ListView ItemSource="{Binding ChildSource}">
<ListView.ItemTemplate >
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Label Text="{Binding ChildProp1}"/>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
parentsource是父列表的数据源对象。Childsource是子列表视图的对象。并将其定义为parentdatasource中的属性
我错过了什么
Notifyproperty是为ParentSource属性实现的。您可以尝试以下操作:
<ListView ItemSource="{Binding ParentSource}">
<ListView.ItemTemplate >
<DataTemplate>
<ViewCell>
<ViewCell.ContextActions>
<MenuItem Text="Delete" />
</ViewCell.ContextActions>
<ViewCell.View>
<Label Text="{Binding Prop1}"/>
<ListView ItemSource="{Binding ChildSource}">
<ListView.ItemTemplate >
<DataTemplate>
<ViewCell>
<ViewCell.View>
<Grid x:Name="RootGrid"
BindingContext="{Binding}">
<Label Text="{Binding BindingContext.ChildProp1, Source={x:Reference RootGrid}}"/>
</Grid>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
它为我工作,希望它能帮助你 你能给我们看一下你想绑定到这个列表的数据吗?我不确定你是否对这个嵌套列表做得很好。不过在UWP上效果很好。@JoakimM实际上,这是一个糟糕的方法。我们应该使用分组的
ListView
。(滚动至ListView部分)。