public class Order
{
public Order(string id, ObservableCollection<Article> articles)
{
Articles = articles;
Id = id;
}
public string Id { get; }
public ObservableCollection<Article> Articles { get; }
}
这是文章的类型,它有一个Name。
public class Article
{
public Article(string name)
{
Name = name;
}
public string Name { get; }
}
public class ShoppingCartViewModel
{
public ShoppingCartViewModel()
{
Orders = new ObservableCollection<Order>
{
new Order("Order 1", new ObservableCollection<Article>
{
new Article("Article 1.1"),
new Article("Article 1.2"),
new Article("Article 1.3"),
}),
new Order("Order 2", new ObservableCollection<Article>
{
new Article("Article 2.1"),
new Article("Article 2.2"),
new Article("Article 2.3"),
})
};
}
public ObservableCollection<Order> Orders { get; }
}
1条答案
按热度按时间zf2sa74q1#
您尝试实现的是主-详细视图,请参阅:
由于您没有提供示例,让我们假设一个使用MVVM模式的非常小的示例。确保在视图模型中实现
INotifyPropertyChanged
接口,以便在属性更改时能够更新用户界面中的绑定。这是orders类型,它有一个订单
Id
和一个Article
集合。这是文章的类型,它有一个
Name
。在视图的主视图模型中,您将公开
Order
的集合(我假设是一个购物车)。您需要创建视图模型的示例,并将其作为视图的数据上下文分配,可以使用代码隐藏或XAML,如下所示。该视图是一个带有
Grid
的Window
,它承载两个TextBlock
作为标题和两个ListBox
,一个用于Order
,一个用于Article
。属性IsSynchronizedWithCurrentItem
设置为true
,因此在视图中跟踪当前选定的Order
。第二个ListBox
使用/
绑定语法绑定Orders
集合中当前项的Articles
集合。就是这样,一个简单的主-详细信息视图,如下所示: