[隨手筆記][WinForm] ComboBox.DataSource 重設之後,顯示名稱失效問題

  • 196
  • 0

問題描述:

如果 DataSource 會動態改變的話,就必須給予新的 DataSource,

這裡有個很妙的部分,就是如果將 DataSource = null,

之後在設定 DataSource = getTestData();

會發現 ComboBox 所顯示的會變成類別的型別字串…


 

原因:

因為將 null 設定給 DataSource 後,會自動將 DisplayMember 清除為空字串,如此一來顯示名稱就 binding 失效了。


解決方式:

為了解決這個問題,目前測出有兩個方式:

  1. 重新設定 DisplayMember,就如同上述所說,既然 DisplayMember 為空字串,就在補上去即可。
  2. 別將 null 設定給 DataSource,因為沒有設定 null,也就不會清除 DisplayMember 。