C#将数据绑定到组合框

时间:2013-12-07 11:43:50

标签: c# wpf binding combobox

已解决:我的组合框的前色设置为白色,因此我没有看到它们。

我知道这已被问到很多,我一直在Google上搜索但是没有找到解决我问题的方法。似乎没什么用。

我想将数据绑定到我的组合框(来自数据库),但它总是空白的。但是当我将相同的数据绑定到列表时,数据会出现..

XAML

<ComboBox x:Name="cboCPType" Style="{StaticResource comboboxenright}" ItemsSource="{Binding CPTypeList}" DisplayMemberPath="Name" SelectedValue="SelectedPerson.JobRole.ID"/>

视图模型

private ObservableCollection<ContactPersonType> _CPTypeList;
    public ObservableCollection<ContactPersonType> CPTypeList
    {
        get
        {
            return _CPTypeList;
        }
        set
        {
            _CPTypeList = value;
            OnPropertyChanged("CPTypeList");
        }
    }

模型

private String _Name;
    public String Name
    {
        get
        {
            return _Name;
        }
        set
        {
            _Name = value;
        }
    }
public static ObservableCollection<ContactPersonType> GetTypes()
    {
        ObservableCollection<ContactPersonType> lijst = new ObservableCollection<ContactPersonType>();
        String sql = "SELECT * FROM ContactpersoonType";
        DbDataReader reader = Database.GetData(sql);

        while (reader.Read())
        {
            ContactPersonType cType = new ContactPersonType();
            cType.Id = reader["ID"].ToString();
            cType.Name = reader["Naam"].ToString();
            lijst.Add(cType);
        }
        return lijst;
    }

1 个答案:

答案 0 :(得分:0)

好吧,您必须拥有一个名为Name的属性的类,但是您不会显示您的代码或实际初始化CPTypeList的内容/位置/方式。

看看我写的这篇文章:
Understanding SelectedValue, SelectedValuePath, SelectedItem & DisplayMemberPath + Demo
希望它能为你清楚一些事情:)

另外,请查看this answer的结尾,以确保设置了datacontext。