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

WPF Bind ItemSource to Property of Instance in Array

假设我有一个 class Organisation:

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

然后我创建一个数组 Organisation:

public Organisation[] Organisations;

组织信息存储在一个xml中,并填充到数组中,效果很好。

我的问题是,我想将组合框的 ItemSource 绑定到我的组织的名称 属性。

如果我只有一个表示名称的字符串数组,那就很容易了:

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

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

ItemSource="{Binding Path=OrganisationNames}"

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

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

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

您可以使用 DisplayMemberPath 属性:

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

此外,您可以使用 SelectedValuePath 属性,这将指定用于确定 SelectedValue [=26] 值的 属性 的路径=].

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

如果你没有任何Id,那么你也可以将SelectedValuePath设置为Name