Xamarin Forms - как отобразить / связать список в ListView? - PullRequest
0 голосов
/ 08 сентября 2018

Я создаю корзину, в которой храню все свои заказы. Как отобразить список в 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>

Ответы [ 2 ]

0 голосов
/ 08 сентября 2018

Возможно, вы пропустили событие 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, если вам это не хватает.

0 голосов
/ 08 сентября 2018

Если MyCart является каким-либо экземпляром CustList,

В ваших привязках вы можете {Binding CUSTOMER_ORDER.menuname}.

Вы должны указать путь к данным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...