【发布时间】:2016-07-24 11:25:13
【问题描述】:
我被这个问题困扰了好几天。一直没有找到解决办法。所以我有一个名为Country 的项目列表,在这个列表中我还有另一个名为League 的项目列表。我已经创建了一个 CollectionViewSource 来组织所有这些国家名称和联赛名称,但我无法绑定所有联赛名称:
<CollectionViewSource Source="{Binding Country}" x:Key="GroupedItems">
<CollectionViewSource.GroupDescriptions>
<PropertyGroupDescription PropertyName="Name" />
<PropertyGroupDescription PropertyName="League.Name" />
</CollectionViewSource.GroupDescriptions>
</CollectionViewSource>
我应该写:<PropertyGroupDescription PropertyName="League[0].Name" />
但这只会绑定联赛列表的第一项。有什么解决办法吗?
实践示例
假设有两个国家(意大利、英格兰),意大利国家有两个联赛(意甲和意乙),而英格兰只有(英超联赛)。 意甲和意乙共包含 3 场比赛,意甲 2 场,意乙 1 场。在英超联赛中有 4 场比赛。 在 ListView 组织中作为我的另一个主题 you can see here,在 UI 中应该显示这种结构:
ITALY
SERIE A
INTER
MILAN
SERIE B
JUVENTUS
ENGLAND
PREMIERE LEAGUE
LEICESTER
MANCHESTER UNITED
MANCHESTER CITY
LIVERPOOL
现在意大利和英格兰被安排为意甲、意甲和英超联赛的小组赛,每个联赛都有一个扩展器(正如你在我的另一个问题中看到的那样)。 问题是在 CollectionViewSource 中我无法显示联赛的名称,因为联赛在列表中,同样的问题是比赛,这是联赛中可用的列表,数据结构:
Nations->Leagues->Matches
【问题讨论】:
-
(1) 不清楚你的意图是什么。如果
League是一个集合,League.Name应该返回什么? (2)CollectionViewSource不像Binding那样使用属性路径,所以你只能指定一个属性名称。 (3) 你应该展示你绑定到这个集合的对象。是两个列表(主详细信息)吗?树视图? -
贴出更多的cs代码,请得到你想要的。
-
@EliArbel 我在这里发布了一个更完整的场景:stackoverflow.com/questions/38549818/… 不幸的是没有人回答
-
@HenkaProgrammer 我需要按国家名称和联赛名称组织组描述
-
所以你的意思是对国家名称进行分组,在每个组中你想对联赛进行分组??