【问题标题】:Silverlight ItemsControl and ComboBoxSilverlight ItemsControl 和 ComboBox
【发布时间】: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


【解决方案1】:

你问的不是很清楚,但这是否回答了你的问题

    <ListBox ItemsSource="{Binding}" x:Name="ListBox1"></ListBox>
    <TextBox Text="{Binding SelectedItem, ElementName=ListBox1}">  </TextBox>

【讨论】:

  • 不..我有一个 ItemsControl.. 说一个 NBA 篮球队的 ItemsSource 并在一个文本框中说我们显示球队名称,湖人队,凯尔特人队..等等..这很容易。但是假设我在这个 itemsControl 中也有一个组合框,并且这个组合框有一个数字源(10 到 60),我需要将它绑定到获胜次数......所以如果湖人队有 60 ......组合框应该说60..
猜你喜欢
  • 1970-01-01
  • 2011-04-13
  • 1970-01-01
  • 2011-09-11
  • 1970-01-01
  • 2011-04-07
  • 1970-01-01
  • 2011-09-05
  • 2011-01-21
相关资源
最近更新 更多