如何在xaml中绑定组合框的内容

时间:2016-12-13 20:24:48

标签: c# wpf data-binding combobox binding

<ComboBox Grid.Row="1" Margin="0,0,0,175" DataContext="{Binding }" />

我已将xaml的DataContext设置为一个类。

在这里我有一个名为Player的课程。 Player有一个名为Quests的另一个对象的属性数组。每个Quest都有一个name属性。

如何将组合框的内容绑定到Quest数组,并使每个项目由其name属性表示?

我假设我必须使用绑定

2 个答案:

答案 0 :(得分:0)

没关系。发现:D

如果其他人有同样的问题:

假设您的窗口/页面中有一个名为Foos的列表。 Foo有一个属性Name。现在,您可以按如下方式在XAML中设置绑定:

<ComboBox ItemsSource="{Binding Path=Foos}"
DisplayMemberPath="Name"
SelectedValuePath="Name"

引自WPF Databinding combobox to a list<string>

答案 1 :(得分:0)

  1. 语句DataContext="{Binding }"只需获取DataContext属性的当前值并将其分配回来 - 这将无效。

  2. 假设此视图的DataContext有一个名为Quests的属性,您需要做的是:

    <ComboBox Grid.Row="1" Margin="0,0,0,175" ItemsSource="{Binding Quests}" />
    
  3. 请注意,ComboBox派生自ItemsControl,因此设置ItemsSource属性始终可以解决问题。

    您可能需要为任务项创建数据模板,以便查看实际感兴趣的内容。 This should get you started with Data Templates.

    创建数据模板后,使用ItemTemplate属性将其设置为ComboBox(再次,ItemsControl提供)。