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

时间:2018-08-20 11:37:56

标签: c# xaml xamarin data-binding xamarin.forms

我正在尝试将某些数据绑定到列表视图,并且正在处理以下问题:

我的对象类型是 CartItem ,它具有一个 product 字段和一个 Quantity 字段。

数量只是一个整数,但产品也是一个模型,它具有较长的ID,字符串ImageUrl和许多其他字段。

我试图像这样将产品内的数据绑定到我的列表视图:

<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();
}

已修复:

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

1 个答案:

答案 0 :(得分:0)

如果ItemsSource是List<CartItem>,则列表中的每个元素都是CartItem的实例,因此绑定表达式应为

Source="{Binding Product.Image}"

还请注意,在已注释掉的示例中,您使用的是“ p”产品而不是“ P”产品-请确保使用与您的财产命名匹配的产品