我有一個窗體,所有文本框綁定到不同的屬性相同的數據對象實現INotifyPropertyChanged。表格自動驗證設置爲'禁用',因爲我想通過調用form.ValidateChildren()明確觸發驗證。驗證綁定到同一對象的不同屬性的控件重置對象值
預計: 調用ValidateChildren之後,所有編輯的值應該在我的數據對象中。
問題: 只有最後的集中控制它的數據寫入到數據對象,但所有其他控件失去編輯的值並顯示舊值來代替。
問題: 如何確保在控件自行刷新之前驗證所有數據?
使用Autovalidate = EnablePreventFocusChange或EnableAllowFocusChange可以正常工作,但由於我想立刻驗證它,所以對我來說這不是一個可接受的解決方案。
在互聯網上搜索soutions我發現一個example顯示相同的問題,但不幸的是沒有解決方案。
編輯 經過進一步調查我想這和它的作品:
form.BindingContext[dataobject].SuspendBinding();
form.ValidateChildren();
form.BindingContext[dataobject].ResumeBinding();
在暫停綁定的標準方式還是有什麼更好的辦法來解決這一問題?
你好pkoszka,謝謝你的回答。一年前我遇到了問題,最後我重新設計了沒有數據綁定的表單,所以我不能說你的建議對我有用,對不起。 – Matmok