簡體   English   中英

如何捕獲由數據綁定控件觸發的異常?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM