我正在尝试从服务响应填充我的组合框。该服务返回一个对象数组,如下面的
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" />
感谢。
答案 0 :(得分:2)
DisplayMemberPath区分大小写。
DisplayMemberPath="socialMediaType"
正在试图绑定到您的私人领域,而不是您的公共财产。尝试:
DisplayMemberPath="SocialMediaType"
答案 1 :(得分:0)
问题是您将DisplayMemberPath和SelectedValuePath设置为私有字段而不是公共属性。
cbSocialMediaTypes.DisplayMemberPath = "socialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "socialMediaType";
将其更改为
cbSocialMediaTypes.DisplayMemberPath = "SocialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "SocialMediaType";