如果在类中创建控件,为什么我的数据绑定不起作用

时间:2014-04-16 02:24:50

标签: c# winforms

我正在尝试将从我的数据库返回的数据绑定到我在类中声明的组合框,并将该组合框返回到调用表单。我遇到的问题是数据绑定不起作用,我已经验证了数据被返回但是当我将数据分配给数据源属性时,它就像绑定从未发生过一样。我试图做的不可能吗?

以下是我的类中的代码,它将组合框返回给调用表单:

public ComboBox LoadCategoryData()
    {
        ComboBox cbx = new ComboBox();


        FindCategoryRequest request = new FindCategoryRequest();
        Service service = ServiceFactory.CreateService();
        FindCategoryResponse response = service.FindCategories(request);

        CategoryView viewItem = new CategoryView();
        viewItem.Name = "Select Category";
        IList<CategoryView> categories = response.Categories.ToList();
        categories.Insert(0, viewItem);
        cbx.DataSource = categories;
        cbx.DisplayMember = "Name";
        cbx.ValueMember = "Id";

        return cbx;
    }

1 个答案:

答案 0 :(得分:1)

从您的代码中创建了示例应用程序,它对我来说很好。

enter image description here

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
        var test = LoadCategoryData();
        this.Controls.Add(test);
    }

    public ComboBox LoadCategoryData()
    {
        ComboBox cbx = new ComboBox();
        CategoryView viewItem = new CategoryView();
        viewItem.Name = "Select Category";
        IList<CategoryView> categories = new List<CategoryView>() { new CategoryView() { Name = "Item1", Id = 1 } };
        categories.Insert(0, viewItem);
        cbx.DataSource = categories;
        cbx.DisplayMember = "Name";
        cbx.ValueMember = "Id";

        return cbx;
    }
}

public class CategoryView
{
    public string Name { get; set; }

    public int Id { get; set; }
}