2013-10-04 44 views
0

我正在使用PropertyGrid.SelectedObjects(Winform控件)屬性來顯示多個對象的屬性。我有每個對象的每個屬性的自定義描述符,它執行基本驗證並執行業務邏輯。如何實現多個對象屬性更改的單個驗證

我只想在所有驗證完成後才執行一次業務邏輯。我們如何做到這一點?

編輯,當值自動設置

PropertyGrid控件使用MergedPropertyDescriptor這就要求我的自定義描述符的功能的SetValue在一個循環中,導致多個業務邏輯調用。我想避免這種情況,而無需使用任何靜態變量的

EDIT2 這個問題也被張貼在Microsoft Forums

回答

0

最簡單的:

myForm.submit = function() { 
    if (checkValidation()) { 
    // business logic; 
    if (OK) return true; 
    } 
    return false; 
}; 

我個人,更願意簡單地使用提交方法作爲包裝器(內部if語句[當真]會調用另一個[業務邏輯]函數返回true或false)。

+0

提交方法(見上文)當然可以更改爲按鈕元素的點擊事件或您想要的所有事件處理程序以用於yoru「SelectedObjectes」。我總是在最後一次「回報錯誤」聲明上犯錯。它不僅使你的代碼更清潔,而且如果你在驗證中遺漏的東西返回的很差,你總是會返回false。在上面的例子中,只有返回'true'的函數才能通過驗證和業務邏輯。 –

+0

我不知道這將如何適合我的情況。我已更新我的問題以提供更多信息。 – keyr

相關問題