Как исправить проблему с привязкой в ​​ListView - PullRequest
0 голосов
/ 15 апреля 2019

Я пытаюсь привязать мой ListView к observableCollection на моей ViewModel.Другие привязки в том же классе работают, но я не вижу никаких данных, где мой список должен быть.

Я попытался установить строки неровно, создать отдельную коллекцию и использовать точки останова для подтверждения наличия данных.

Вот код xaml:

<StackLayout Spacing="10" Padding="7" Grid.Row="1" Grid.Column="0">
                <Label Text="Name:" FontSize="Medium"/>
                <Label Text="{Binding order.Name}" FontSize="Small"/>
                <Label Text="Price:" FontSize="Medium"/>
                <Label Text="{Binding order.Price}" FontSize="Small"/>
            </StackLayout>
            <ListView ItemsSource="{Binding order.foodItems}" Grid.Row="0" Grid.Column="0" HasUnevenRows="True">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <StackLayout Padding="10" Orientation="Horizontal" HorizontalOptions="Fill">
                                <Label Text="{Binding Name}" FontSize="Medium"/>                                
                                <Label Text="{Binding Quantity}" FontSize="Medium" />                                
                            </StackLayout>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

Вот мой ViewModel

Order _order;
        public Order order 
        {
            get { return _order; }
            set { SetProperty<Order>(ref _order, value); }
        }

        public OrderDetailViewModel(Order value)
        {
            order = value;            
        }

Класс заказа:

 public class Order
    {
        public string Name { get; set; }
        public ObservableCollection<IFoodItems> foodItems;
        public double Price { get; set; }

        public Order(string name)
        {
            Name = name;
            foodItems = new ObservableCollection<IFoodItems>();
        }
        public void SetPrice(double value)
        {
            Price = value;            
        }
        public void AddItem(IFoodItems food)
        {
            foodItems.Add(food);
        }
    }
...