2016-10-08 42 views
0

虽然我试图从设计器上的对象将数据绑定到我的组合框,但不显示这些项目。 enter image description hereWindows窗体中的数据绑定

但是,当我从后面的代码指定它们的显示... enter image description here

如何,我可以在我的收藏从设计师绑定?

+0

也许你只是忘了设置'itemsBindingSource.DataSource = Items;'。在加载'Items'后添加这行代码 –

+0

在Windows窗体中,在你想要查看的场景在绑定列表控件(复合双向数据绑定)中更改数据源时,应该使用实现'IBindingList'的类作为'DataSource',最合适的实现是'System.ComponentModel.BindingList' A常见的错误是使用'ObservableCollection',它不适用于这个要求,因为它没有实现'IBindingList'。您可能会发现这篇文章很有用:[连接列表到列表框](https://stackoverflow.com/questions/33623991/connect-listt-to-a-listbox) –

回答

1

你不需要使用的ObservableCollection绑定UI窗口中添加表格申请。只需设置combobox.ItemSource = List<string>。当你想获得当前值只需使用combobox.SelectedItem或combobox.SelectedValue获取当前值。
(ps。observable属性应该有get和set方法,在set方法中你需要调用方法RaisePropertyChanged("propertyname"),因为你还需要在UI部分做一些改变并导入someting。(类似的东西,我不记得了但它很复杂

+0

与窗体数据绑定的'List '和'ObservableCollection '之间没有区别。 –

+0

BindingList 和ObservableCollection 这两个作品和项目都显示在combobox中..我只是想知道我是否可以从Designer/Properties中引用它,但仍然失败..我现在明白了,我们无法做到这一点! .. –

1

如果你要绑定的设计师 项目选择 - >项目集合FROM属性窗口 pic

编程方式从列表

List<string> values = new List<string>(); 

    private void AddItemProg() 
    { 
     values.Add("Name"); 
     values.Add("Age"); 
     values.Add("DOB"); 
     values.Add("Address"); 

     comboBox1.Items.Clear(); 

     for (int nIndex = 0; nIndex < values.Count; nIndex++) 
     { 
      string v = values[nIndex]; 
      comboBox1.Items.Add(v); 
     } 
    } 
+0

手动添加值到'Items'集合将工作但OP想要使用数据绑定。 –

相关问题