Silverlight ItemsControl和ComboBox

时间:2011-03-02 21:30:10

标签: c# silverlight xaml

我正在清理这个问题并准备一个对我有意义的例子......对你来说也是如此......

所以我想说我有一个Items控件。这种控制与NBA篮球队(湖人队,热火队,尼克斯队等)的可观察组合有关。在这个可观察的NBATeams集合中,我有一个FavoritePlayer的属性。我有一个datatemplate,它说明了如何在Items Control中查看。我有一个显示团队名称的文本框。 (这可能是/应该只读。现在不是)但它显示了球队名称。洛杉矶湖人队。我的项目控件中的第二项是组合框。这个组合框最终将在每个团队中显示我最喜欢的球员。

组合框上的itemssource来自我的查找值。它显示团队中的所有人员,此组合框上的displaymemberpath是“DisplayText”...我需要在此组合框中显示所选项目。所以,如果我最喜欢的球员是Kobe Bryant,那么组合框就应该显示出来。

<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}"

所以我必须设置items控件的名称并在元素名称中使用它,并将path =设置为DataContext.PlayerList。这现在调出我的组合框中的项目..它没有做的是设置我的组合框的选择项。

1 个答案:

答案 0 :(得分:0)

你的要求不是很明确,但这回答了你的问题

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