Dot-Net

將 Winforms 控制項數據綁定到可為空類型的最佳方法?

  • December 17, 2008

我目前正在使用 winforms 數據綁定來連接數據編輯表單。我通過 CodeSmith 使用 netTiers 框架來生成我的數據對象。對於允許空值的數據庫欄位,它會創建可空類型。我發現使用 winforms 數據綁定控制項不會正確綁定到可為空的類型。

我在網上看到了一些解決方案,建議人們創建新的文本框類來處理可以為空的類型,但這可能會很痛苦,不得不在我已經創建的表單上換掉文本框。

最初我認為使用擴展方法來做到這一點會很棒。基本上為文本框類創建一個擴展屬性並綁定到它。從我有限的擴展方法經驗和線上檢查來看,您似乎無法進行擴展屬性。據我所知,綁定必須通過屬性,因為它需要能夠獲取或設置值,因此擴展方法不起作用。

我很想找到一種干淨的方法來使用擴展方法之類的方法來改造這些表單,但是如果我必須創建新的文本框和組合框控制項,我會這樣做。

由於需要在 Windows 2000 上執行,我的項目目前僅限於 .Net 2.0。

有什麼建議?

在上面引用的文章的評論部分,其中一位海報提出了一個簡單的解決方案。

而不是綁定:

textBox1.DataBindings.Add("Text", myClass, "MyTextProperty");

綁定:

textBox1.DataBindings.Add("Text", myClass, "MyTextProperty", true, DataSourceUpdateMode.OnPropertyChanged, string.Empty); 

引用自:https://stackoverflow.com/questions/376361