C# 绑定数据时访问自定义对象字段

C# 绑定数据时访问自定义对象字段,c#,xaml,xamarin,data-binding,xamarin.forms,C#,Xaml,Xamarin,Data Binding,Xamarin.forms,我正在尝试将一些数据绑定到listview,我正在处理以下问题: 我的对象类型是CartItem,它有一个产品字段和一个数量字段 Quantity只是一个整数,但是产品也是一个模型,它有一个长ID、字符串ImageUrl和一系列其他字段 我试图将产品中的数据绑定到我的listview,如下所示: <Image Grid.Column="0" Grid.RowSpan="2" Source="{Binding CartItem.Product.Image}"> 但它不起作用 是否

我正在尝试将一些数据绑定到listview,我正在处理以下问题:

我的对象类型是CartItem,它有一个产品字段和一个数量字段

Quantity只是一个整数,但是产品也是一个模型,它有一个长ID、字符串ImageUrl和一系列其他字段

我试图将产品中的数据绑定到我的listview,如下所示:

<Image Grid.Column="0" Grid.RowSpan="2" Source="{Binding CartItem.Product.Image}">

但它不起作用

是否有一种方法可以通过XAML文件访问此文件,或者我必须编写一些显式代码

[编辑]:

protected override void OnAppearing()
{
    var stack = Navigation.NavigationStack;

    MainPage mainPage = (MainPage)stack[0];

    List<CartItem> cartList = mainPage.cart;

    //DependencyService.Get<IMessage>().LongAlert(cartList[0].product.Image);

    BindingContext = cartList;

    CartListView.ItemsSource = cartList;

    base.OnAppearing();
}
protected override void OnAppearing()
{
var stack=Navigation.NavigationStack;
主页主页=(主页)堆栈[0];
List cartList=mainPage.cart;
//DependencyService.Get().LongAlert(cartList[0].product.Image);
BindingContext=cartList;
CartListView.ItemsSource=cartList;
base.OnAppearing();
}
固定为:

<Image Grid.Column="0" Grid.RowSpan="2" Source="{Binding product.Image}"

如果您的ItemsSource是一个
列表
,那么列表中的每个元素都是
CartItem
的实例,因此绑定表达式应该是

Source="{Binding Product.Image}"

另外请注意,在您注释掉的示例中,您使用的是“p”product而不是“p”product-请确保您使用的是与您的属性命名匹配的产品

这应该可以工作,您确定在绑定时填充了产品和图像吗?您是否设置了BindingContext?此外;它们是公共属性吗?列表在绑定时填充。此外,酒店也是公共的。你好,杰森!非常感谢你的回答。事实上,问题在于“p”的资本化。现在它工作了!