我有一個WPF工具包DataGrid ItemsSource
屬性綁定到DataTable
。 DataTable在其中一列上有一個唯一的約束。如果我嘗試在列中輸入非唯一數據,則會從我無法訪問的代碼區域引發異常(這很好),然後應用程序崩潰(這很糟糕)。如何處理此異常?
如何捕獲或以其他方式導致此異常被處理,以便應用程序不會崩潰?
我有一個WPF工具包DataGrid ItemsSource
屬性綁定到DataTable
。 DataTable在其中一列上有一個唯一的約束。如果我嘗試在列中輸入非唯一數據,則會從我無法訪問的代碼區域引發異常(這很好),然後應用程序崩潰(這很糟糕)。如何處理此異常?
如何捕獲或以其他方式導致此異常被處理,以便應用程序不會崩潰?
我已經解決了這個問題,在DataGrid
上爲CellEditEnding
事件添加了一種驗證。如果驗證失敗,我將e.Cancel
設置爲true
。
這可能不是正確的方法去解決這個問題,但它有最終的結果。
這是一種可行的解決方法。如果您從DataTable轉移到對象數據中,則可以將您的數據類設置爲實現IDataErrorInfo並使用它來執行驗證。 WPF使用得非常好,出錯時,您可以顯示一個ValidationErrorTemplate項,修改控件以向用戶提供有關如何正確編輯字段/屬性的信息。查看 – CodeWarrior
請問您能展示一些代碼嗎?你是否也能捕捉到這個例外,你在catch語句中做了什麼 – Hasanain
@Hananain,你想看什麼代碼?不,我不明白這個例外,但我想 - 因此是一個問題。 –
假設你有一個你沒有源代碼的庫/ dll,異常冒泡到你的代碼中...所以你可以顯示代碼,至於你在哪裏/如何使用dataTable ... – Hasanain