MAUI XAML中如何访问嵌套类的成员?
解决MAUI中嵌套类成员的XAML绑定问题
问题根源
你的Result是Data类的嵌套类,在XAML中引用嵌套类需要使用特定语法,同时要确保绑定的集合类型与嵌套类匹配。
解决步骤
确认XAML命名空间引用正确
在XAML根元素(如ContentPage)中添加对应命名空间的引用:xmlns:model="clr-namespace:JsonData.Model"正确指定嵌套类的x:DataType
XAML中引用嵌套类需要用+连接外层类与嵌套类,所以DataTemplate的x:DataType应写为:<DataTemplate x:DataType="model:Data+Result">你之前尝试的
model:Result是错误写法,因为Result并非顶级类,而是Data的内部嵌套类。验证集合类型匹配
确保ViewModel中的Results集合类型为ObservableCollection<Data.Result>,而非ObservableCollection<Data>:public ObservableCollection<Data.Result> Results { get; set; } = new();
修改后的完整XAML示例
<CollectionView ItemsSource="{Binding Results}"> <CollectionView.ItemTemplate> <DataTemplate x:DataType="model:Data+Result"> <HorizontalStackLayout> <Button Text="{Binding Name}" /> </HorizontalStackLayout> </DataTemplate> </CollectionView.ItemTemplate> </CollectionView>
额外排查点
如果问题仍存在,检查以下内容:
- 确认
Result类的Name属性为公共访问级别(你的代码已满足) - 验证页面的
BindingContext已正确指向包含Results集合的ViewModel
内容的提问来源于stack exchange,提问作者modab
相关产品推荐
相关产品推荐

