如何修复ListView中的绑定问题

时间:2019-04-15 00:50:21

标签: c# mvvm xamarin.forms xamarin.forms.listview

我正在尝试将ListView绑定到ViewModel上的observableCollection。在同一个类上的其他绑定正在工作,但我没有看到应该在列表中的任何数据。

我尝试过将行设置为不均匀,实例化一个单独的Collection,并使用断点确认是否有数据。

这是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);
        }
    }

0 个答案:

没有答案