【发布时间】:2012-04-25 16:40:42
【问题描述】:
我想为商店构建一个 WPF 后端应用程序。一个视图应该包含 2 个列表框。 1 表示可以购买的物品,1 表示类别。
我想根据选择将项目变灰。现在更多细节:
到目前为止,我的视图模型有一个 ObservableCollection<ShopItem>
而ShopItem 类有一个price、title 和一个list of Categories
我想将 ShopItems 绑定到 1 ListBox 并将 Distinct Category 绑定到另一个 ListBox
由于ShopItem 可以有多个类别,我想将属于选定ShopItem 的所有其他categories 变灰。所以我的第一个listbox 中的选择应该控制我的第二个listbox 的外观。
另一方面,当我选择category 时,我想将除属于该category 的ShopItems 之外的所有其他ShopItems 灰显。所以listbox 2 也应该影响listbox 1 的外观。
“变灰”是指项目应该有另一种风格。
我看到了一些关于 MultiTrigger 的东西,它可以根据条件更换模板样式。
我不确定我是否可以绑定我的ObservableCollection<ShopItem> 或者需要在这里有两个列表。我是否需要两个列表之间的一些发布/订阅。我想避免在每次选择更改时遍历视图模型中的所有元素,这里有什么想法吗?
我现在正在摸索如何解决这个问题。任何建议都会很棒...
【问题讨论】:
标签: wpf mvvm viewmodel publish-subscribe