从服务填充WPF组合框



我正试图从服务响应填充我的组合框。该服务返回一个对象数组,如以下

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区分大小写。
DisplayMemberPath="socialMediaType"

是说试图绑定到你的私人领域,而不是你的公共财产。尝试:

DisplayMemberPath="SocialMediaType"

问题是将DisplayMemberPath和SelectedValuePath设置为私有字段,而不是公共属性。

cbSocialMediaTypes.DisplayMemberPath = "socialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "socialMediaType";

将其更改为

cbSocialMediaTypes.DisplayMemberPath = "SocialMediaValue";
cbSocialMediaTypes.SelectedValuePath = "SocialMediaType";

最新更新