【问题标题】:Xamarin Forms - how to display/Bind List in ListView?Xamarin Forms - 如何在 ListView 中显示/绑定列表?
【发布时间】:2019-02-13 08:30:39
【问题描述】:

我正在创建一个存储所有订单的购物车,如何在 ListView 中显示列表?

我试着做这些代码

CustomerOrder.cs

public class CustomerOrder
    {
        public string menuname { get; set; }
        public string price { get; set; }
        public string qty { get; set; }
        public string mcode { get; set; }
    }

    public class CustList
    {
        //i want to display/bind this in Listview
        public List<CustomerOrder> CUSTOMER_ORDER { get; set; }
    }

OrderCart.xaml

<ListView x:Name="MyCart" ItemSelected="MyCart_ItemSelected"  ItemsSource="{Binding CUSTOMER_ORDER}" RowHeight="50">
        <ListView.ItemTemplate>
            <DataTemplate>
                <ViewCell >
                    <Grid>

                                <StackLayout Orientation="Horizontal">
                                    <Label  Text="{Binding menuname}" Font="30" TextColor="Black" FontAttributes="Bold"/>
                                    <Label  Text="{Binding qty}" Font="30" TextColor="Black" FontAttributes="Bold"/>
                                    <Label  Text="{Binding price}" Font="30" TextColor="Black" FontAttributes="Bold"/>
                                    <Label  Text="{Binding mcode}" Font="30" TextColor="Black" FontAttributes="Bold"/>
                                </StackLayout>
                  </Grid>
                </ViewCell>
            </DataTemplate>
        </ListView.ItemTemplate>

    </ListView>

【问题讨论】:

  • 我在您的示例中没有看到二维数组。是否缺少代码?
  • @SwapnilShah 我编辑了它我的意思是列表不是数组谢谢!进行更正。

标签: c# xaml xamarin xamarin.forms


【解决方案1】:

您可能会错过 PropertyChanged 事件。

public class CustList:INotifyPropertyChanged
    {
        //i want to display/bind this in Listview
        private List<CustomerOrder> _CUSTOMER_ORDER
        public List<CustomerOrder> CUSTOMER_ORDER 
        { 
          get{return _CUSTOMER_ORDER;}
          set{
              _CUSTOMER_ORDER=value;
              OnPropertyChanged("CUSTOMER_ORDER");
             } 
        }

        public event PropertyChangedEventHandler PropertyChanged;
        protected virtual void OnPropertyChanged(string propertyName)
        {
            PropertyChanged?.Invoke(this, 
            new PropertyChangedEventArgs(propertyName));
        }
    }

另外一件事是,如果您缺少它,您必须为您的 xaml 应用 bindingcontext。

【讨论】:

    【解决方案2】:

    如果 MyCart 是 CustList 的任何实例,

    在您的绑定中,您可以{Binding CUSTOMER_ORDER.menuname}。

    您必须为其提供数据路径。

    【讨论】:

    • 你怎么给路径?
    • ` `
    • 就这样?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-03
    • 1970-01-01
    • 2015-06-07
    相关资源
    最近更新 更多