2016-10-08 46 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想要使用數據綁定。 –

相關問題