我已經將DataTable綁定到WPF(.NET 3.5,WPFToolkit.dll)DataGrid。這是一個非常大的客戶端 - 服務器應用程序。服務器可以異步地將數據發送到客戶端「引擎」;這些數據是以引擎設置的屬性形式發送的。在編輯DataGrid時清除DataTable
因此,作爲我的意思的一個例子,我有一個class MyFunkyDataGrid : DataGrid
。 MyFunkyDataGrid
有一個名爲MyFunkyData
的DependencyProperty,其類型爲Dictionary<string, Object>
。只要在服務器上更改了MyFunkyData
,它就立即在客戶端上同步,並設置爲MyFunkyDataGrid
。當MyFunkyData
發生變化時,我翻閱字典並將數據設置到我的網格的DataTable上。
當然,發生這種情況時,我首先需要清除其當前數據的DataTable。所以我打電話給dataTable.Clear()
。通常這是一種享受。 但如果我目前在編輯一個MyFunkyDataGrid小區時DataTable中被清除,我得到:
System.ExecutionEngineException was unhandled
Message=Exception of type 'System.ExecutionEngineException' was thrown.
InnerException:
其崩潰我的應用程序。我試過在MyFunkyDataGrid上調用CancelEdit()
,我試着在DataRow本身上調用它。在撥打Clear()
之前,我已嘗試在DataTable上調用RejectChanges()
。沒有骰子。
有沒有人見過這樣的事情?
如果將'MyFunkyGrid'的'ItemsSource'或'DataContext'設置爲'null',會發生什麼? – SeToY 2012-08-09 12:17:55
@SeToY沒有數據顯示(按預期)。底層數據表正在改變,但沒有崩潰發生。這似乎只在ItemSource綁定到DataTable.DefaultView時發生,並且我正在編輯單元格,同時清除dataTable。 – FreeMemory 2012-08-09 12:26:01
如果ItemsSource中的項目數量是37,會發生這種情況嗎? – Johnathan 2012-08-09 12:26:32