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
。
假设我有一个 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
。