2015-10-28 28 views
0

問題描述: 我有一個小型的WPF窗口,使用綁定到可觀察集合的Datagrid。當此窗口在具有.net 4.5的Windows操作系統中啓動時,它工作正常,但是當我在僅安裝.Net 4.0(例如:Windows Server 2008 R2)的操作系統中運行時,此窗口會崩潰,並出現以下異常。.net 4.0中WPF Datagrid的奇怪行爲

exception

或者在這裏:http://i.imgur.com/AxG9t5p.png

同一窗口工作正常,如果我安裝.NET 4.5,即使我的應用程序是基於.NET 4.0,我沒有使用任何功能特定於.NET 4.5 。

如果有人能解釋爲什麼不同的行爲,這將是偉大的?

項目可以在這裏找到:http://1drv.ms/1k9Yolx 感謝

回答

0

我試圖運行在.Net4.5和.NET 4.0的項目,我還沒有遇到任何錯誤。

您已經捕獲了ArgumentOutOfRangeException,並且此異常與平臺.Net4.0和.Net 4.5無關。此外,.Net4.0和.Net 4.5中都有ArgumentOutOfRangeException。代碼var t = Projects.ColumnFromDisplayIndex(2)獲取指定索引處的DataGridColumn。正如你有9列(_name,...,_path), 你做任何異常。但是,如果您將此設置爲10這樣Projects.ColumnFromDisplayIndex(10),那麼您將捕獲一個ArgumentOutOfRangeException ,因爲您超出範圍(您有9列,但您嘗試不存在列)。

+0

謝謝。這裏的要點是,如果我的集合在安裝了.net 4.5的操作系統中是空的,仍然可以在窗口中看到列,但數據網格是空的。但在.NET 4.0版本中,列本身並不可見,因此Datagrid的Columns屬性爲0,而在.net 4.5中爲10. 注意:如果其中一個是不是同時安裝。 – Sherry

+0

@Sherry你確定代碼在兩個變體中都是一樣的嗎? – StepUp

+0

你已經發現了一個異常,異常不依賴於已安裝的平臺。這只是你想從DataGrid獲取什麼的問題。 – StepUp