WPF将ItemSsource绑定到Array中的实例属性

时间:2015-03-11 09:32:30

标签: c# arrays wpf binding

假设我有一个班级Organisation

public class Organisation(){
   public string Name{
      get;
      set;
   }
   public string Code{
      get;
      set;
   }
}

然后我创建了一个Organisation

的数组
public Organisation[] Organisations;

组织信息存储在xml中并填充到数组中,效果很好 我的问题是,我想将Combobox的ItemSource绑定到我的组织的Name属性。

如果我只有一个代表名字的字符串数组,那将非常容易:

public string[] OrgansationNames = new string[]{"Organ1", "Organ2" /**/};

然后我可以像这样轻松绑定:

ItemSource="{Binding Path=OrganisationNames}"

显然它有点复杂,我需要这样的东西:

ItemSource="{Binding Path=Organisations[].Name}"

我不清楚在这种情况下我应该如何指定路径......

1 个答案:

答案 0 :(得分:3)

您可以使用DisplayMemberPath属性:

<ComboBox ...
          ItemSource="{Binding Path=OrganisationNames}"
          DisplayMemberPath="Name" />

此外,您可以使用SelectedValuePath属性,该属性将指定用于确定SelectedValue属性值的属性的路径。

<ComboBox ...
          ItemSource="{Binding Path=OrganisationNames}"
          DisplayMemberPath="Name" 
          SelectedValuePath="ID"/>

如果您还没有Id,那么您也可以将SelectedValuePath设置为Name