[英]How can I catch an Exception triggered by databound Control?
我有一個數據綁定的NumericUpDown -Control,綁定如下:
Binding b = new Binding("Value", myDataSource, "myProperty");
b.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
numericUpDown.DataBindings.Add(b);
更改myProperty
可能會產生進一步的影響,並可能在更遠的地方引發異常。
GUI中沒有檢查是否將引發異常所需的某些信息,因此很難驗證輸入。 我可以捕獲由DataBinding進行的值更改觸發的異常嗎? 還是這是一個不好的設計? 如果是這樣,我是否應該提供所有必要的信息以能夠正確驗證輸入,還是不應該使用DataBinding進行復雜的更改?
我將不勝感激任何幫助!
豐富
當綁定值更改導致異常時,您會發現有時綁定會吞噬它。
為此,您可以掛鈎到綁定的BindingComplete
事件(您可能需要將綁定FormattingEnabled
為同時將FormattingEnabled
為true)。 屆時,綁定寫入數據源時捕獲的任何異常都將在事件args上冒泡(在其Exception
屬性上)。 不幸的是,您可能會發現大部分堆棧跟蹤丟失了...
編輯 :如果您正在使用BindingSource組件,它也會冒泡BindingComplete
事件。 因此,這可能也是捕獲其他綁定拋出的異常的更快方法。
數據綁定不應針對復雜的屬性。
檢索和設置屬性時應進行驗證。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.