的WinForms,.NET 3.5C#中的組合框綁定到越來越多
我有一個需要顯示的項目越來越多了一個組合框 - 有一個長期運行的過程中獲取的項目,我希望能夠隨着時間的推移向用戶顯示物品。
將DatSource屬性設置爲初始數組/列表不起作用,因爲後續添加未由ComboBox註冊。
現在我可以將DatSource設置爲綁定列表 - 但看起來這會變得非常緩慢。當我加油時,事情就會好起來;但是我每隔幾秒就會添加一千個項目,而且這個速度只是掛起了表單。
我完全願意相信這是一個直接綁定到BindingList的固有缺點,但想更好地理解發生了什麼。關於DatSource,BindingList和BindingSource的MSDN文章討論像BindingContexts和CurrencyManagers這樣的概念,但是並沒有幫助我理解具體事件,重繪以及可能導致速度減慢的那些內容。
我懷疑BindingSource註冊一個項目添加事件到組合框,然後通過一系列的項目添加,DropDown檢查和失效。但MSDN瀏覽和谷歌搜索沒有幫助我回答這個問題。
任何人都可以指向正確的方向嗎?
澄清
我知道的設計問題,以及如何解決此問題。所以我並不是真的在尋找一個解決方案 - 但我想做想了解正在發生的更深層次的機制。
只是出於好奇,每隔幾秒就會添加數千個項目的組合框怎麼能對任何用戶都有用? – BFree 2009-12-11 16:10:55
同意...太多項目是有用的。按類別或某物將組合框分成某種過濾系統。 – 2009-12-11 16:13:03