回答
關於UI驗證,我有一組控件驗證器,我只是通過分配控件將它們插入到我需要的地方。你可以使用ErrorProvider顯示錯誤,你所需要的只是封裝框架來自動化事情。
首先是ValidatorBase類。使其抽象並繼承Component類,以便您可以獲得設計時支持。在這裏存儲一個ErrorProvider的私有實例,並使用類似Template Method模式的東西(創建一個Validate方法,然後調用受保護的抽象DoValidation方法)。在基類的具體實現中,只需重寫DoValidation並將您的邏輯放在此處。您可以使用EmptyValidator(檢查控件的值是否爲空),RegexValidator(使用某些reg。表達式檢查控件值),GroupValidator(對某個列表中的每個ValidatorBase實例執行驗證),無論您想要什麼。
在基礎類,你可以添加的東西像性能設計時支持(錯誤信息,圖標,控制,驗證等)
EDIT1:現在,關於其他驗證,然後在UI ,那就是你的業務層的領域和你的規則。這些東西也有框架/模式,但我認爲你在問UI驗證。雖然有更多的功能(客戶端驗證等),但是說實話,我不喜歡他們那麼多。雖然有更多的功能(客戶端驗證,等等),但是ASP.NET有一組類似的驗證器。
EDIT3:還要檢查: Is there any validation control available in .net win forms like asp.net web form?
一個接口,你可以考慮在尋找與ErrorProvider類一起IDataErrorInfo。我有一箇舊的博客文章,提供了DataBinding類和接口的列表,可能有所幫助:Data Binding Classes, Interfaces, and Attributes in Windows Forms 2.0。
- 1. 什麼是保存/加載Windows窗體的最佳方式ToolStripMenuItem
- 2. 用cin在C++中進行輸入驗證的最佳方式是什麼?
- 3. 在WPF中處理驗證的最佳方式是什麼?
- 4. 通過WCF進行身份驗證的最佳方式是什麼?
- 5. 提交前進行表單驗證的最佳方式是什麼
- 6. 什麼是驗證.NET Windows窗體的正確方法?
- 7. 在iPhone中進行本地化的最佳方式是什麼?
- 8. 在Emacs中進行Java開發的最佳方式是什麼?
- 9. 在Rails中進行AJAX調用的最佳方式是什麼?
- 10. 使用Cookies進行PHP驗證的最佳做法是什麼?
- 11. 處理失敗的nonce驗證的最佳方式是什麼?
- 12. 什麼是設計窗體佈局的最佳方式
- 13. 什麼是驗證輸入(Skeleton + Vue.js)的最佳方式?
- 14. 什麼是驗證複雜Flex表單的最佳方式?
- 15. 什麼是保持身份驗證狀態的最佳方式
- 16. 什麼是爲SQLite編寫驗證圖層的最佳方式
- 17. 驗證用戶上傳文件的最佳方式是什麼?
- 18. 年齡驗證的最佳方式是什麼?
- 19. 什麼是驗證日期和時間的最佳方式
- 20. 什麼是驗證EntityFramwork 4.0類的最佳方式?
- 21. 什麼是驗證XML的最佳方式?
- 22. 未驗證數據的最佳方式是什麼?
- 23. 什麼是驗證電子郵件域的最佳方式?
- 24. 什麼是驗證Web服務的最佳方式
- 25. 在mongo中驗證數據的最佳方法是什麼?
- 26. 在jQuery驗證中使用ajaxform的最佳方法是什麼?
- 27. 在Android上進行SMS_RECEIVED工作的最佳方式是什麼?
- 28. 在Angular2中使用模式進行電子郵件驗證的最佳方式是什麼?
- 29. 自定義jQuery表單驗證 - 什麼是最佳方式?
- 30. 什麼是在Windows窗體應用程序中查找長時間運行的代碼的最佳方式
你可以嘗試更加具體一點。什麼樣的數據,什麼要求等等。它不像是有一個明確定義的驗證方法的列表。 – 2010-12-08 21:37:49