【发布时间】:2011-07-07 14:54:37
【问题描述】:
我正在清理这个问题并举一个对我有意义的例子..希望对你来说也是如此......
所以可以说我有一个 Items 控件。此控件绑定到可观察的 NBA 篮球队集合(湖人队、热火队、尼克斯队......等)。在这个 NBATeams 的可观察集合中,我有一个 FavoritePlayer 的属性。我有一个数据模板,它列出了项目控件内部的外观。我有一个显示团队名称的文本框。 (这可能是/应该是只读的......现在不是)但它显示球队名称......洛杉矶湖人队。我的项目控件中的第二个项目是一个组合框。这个组合框最终将显示我在每支球队中最喜欢的球员。
组合框上的 itemssource 来自我拥有的查找值。它显示团队中的所有人员,并且此组合框上的 displaymemberpath 是“DisplayText”...我需要显示此组合框中的选定项目。所以如果我最喜欢的球员是科比布莱恩特,组合框应该显示这个。
<telerik:RadComboBox Grid.Row="0" Grid.Column="9" Width="150" EmptyText="--Select Player--"
ItemsSource="{Binding PlayerList}"
SelectedItem="{Binding FavoritePlayer, Mode=TwoWay}"
DisplayMemberPath="DisplayText" HorizontalAlignment="Left"></telerik:RadComboBox>
我习惯于在列表框中仅包含文本块,然后当从该列表框中选择一个项目时,我使用该选定项目来绑定位于我的列表框之外的组合框。现在我实际上在列表框中有组合框(现在是 ItemsControl)。所以我想知道从 ItemsControl 中绑定组合框的最佳方法
我最初只是在让玩家出现在组合框中时遇到问题。但我通过执行以下代码解决了这个问题。
我发现我的第一个问题是将项目源绑定到项目控件中的组合框。
我必须将绑定设置为如下所示。
ItemsSource="{Binding DataContext.PlayerList, ElementName=ItemsControlNBATeams}"
所以我必须设置项目控件的名称并在元素名称中使用它并将路径 = 设置为 DataContext.PlayerList。现在这会显示我的组合框中的项目..它不做的是设置我的组合框的选定项目。
【问题讨论】:
-
你能把这个问题表述得更清楚一点吗?
-
稍微清理了这个问题..thanks foson
标签: c# silverlight xaml