我被困在这个问题上好几天了。从未找到解决方案。所以我有一个名为Country
的项目列表,在这个列表中我还有另一个名为League
的项目列表。我已经创建一个CollectionViewSource的组织在国名和联盟名称这一切,但我不能约束所有的联赛名称:如何绑定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
现在意大利和英格兰被布置成groupstyle作为意甲,意乙和超级联赛,与膨胀(正如你可以在我的另一个问题中看到的那样)每个联赛都有比赛。 的问题是,在CollectionViewSource我无法显示联盟中引起了联盟的名单中,同样的问题是比赛的名字,那是联盟提供的列表,数据结构:
Nations->Leagues->Matches
(1)目前尚不清楚你的意图是什么。如果'League'是一个集合,'League.Name'应该返回什么? (2)'CollectionViewSource'不像'Binding'那样使用属性路径,所以你只能指定一个属性名称。 (3)你应该显示你对这个集合的约束力。它是两个列表(主细节)?树视图? –
发布更多的cs代码,请准确得到你想要的。 –
@EliArbel我在这里发布了一个更完整的场景:http://stackoverflow.com/questions/38549818/cannot-bind-list-of-items-in-gridview-column不幸的是没有人回答 – Heisenberg