DisplayMemberPath区分大小写。
我正试图从服务响应填充我的组合框。该服务返回一个对象数组,如以下
MyService.FirmSocial[] firmSocialList = client.GetActiveSocialMediaTypes();
我已经检查过了,firmSocialList填充正确。我需要用这些值填充我的组合框。
我已经在后面的代码中尝试过了
cbSocialMediaTypes.ItemsSource = firmSocialList;
cbSocialMediaTypes.DisplayMemberPath = "socialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "socialMediaType";
我也在XAML端尝试了同样的方法,但我得到的只是组合框中的一堆空字符串。问题是,元素的数量与组合框(空字符串)的项计数相匹配。
是的,FirmSocial对象的属性名称是正确的。
FirmSocial类
public class FirmSocial
{
private int socialMediaType;
private string socialMediaValue;
public int SocialMediaType
{
get
{
return socialMediaType;
}
set
{
socialMediaType = value;
}
}
public string SocialMediaValue
{
get
{
return socialMediaValue;
}
set
{
socialMediaValue = value;
}
}
}
我在XAML部分也尝试过这种方法;
<ComboBox x:Name="cbSocialMediaTypes" HorizontalAlignment="Left" Margin="56,8,0,0" VerticalAlignment="Top" Width="211"
ItemsSource="{Binding firmSocialList}"
DisplayMemberPath="socialMediaType"
SelectedValuePath="socialMediaType" />
谢谢。
DisplayMemberPath="socialMediaType"
是说试图绑定到你的私人领域,而不是你的公共财产。尝试:
DisplayMemberPath="SocialMediaType"
问题是将DisplayMemberPath和SelectedValuePath设置为私有字段,而不是公共属性。
cbSocialMediaTypes.DisplayMemberPath = "socialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "socialMediaType";
将其更改为
cbSocialMediaTypes.DisplayMemberPath = "SocialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "SocialMediaType";