>

내 주문을 모두 저장하는 카트를 만들고 있는데, ListView에 List를 표시하는 방법은 무엇입니까?

이 코드를 시도했습니다

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>

  • 답변 # 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에 바인딩 컨텍스트를 적용해야한다는 것입니다.

  • 답변 # 2

    MyCart가 CustList의 인스턴스 인 경우

    바인딩에서 {CUSTOMER_ORDER.menuname} 바인딩을 할 수 있습니다.

    데이터 경로를 지정해야합니다.

관련 자료

  • 이전 java - Android 용 SSH 서버 라이브러리
  • 다음 sql server - 다른 데이터베이스에서 내부 참여