将数据绑定到 xamarin 中的子列表视图元素
本文关键字:列表 视图 元素 数据绑定 xamarin | 更新日期: 2023-09-27 18:36:08
我正在尝试在Xamarin Forms中创建列表视图控件。列表视图在其数据模板中包含另一个列表视图。数据正在从视图模型绑定。但首先,内部列表视图不显示任何数据。但如果尝试滚动列表,将显示数据。
<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>
父源是父列表的数据源对象。子源是子列表视图的对象。它被定义为父数据源一侧的专有属性。
我在这里错过了什么?
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>
它对我有用,希望对您有所帮助!