我有一個包含一些自定義列的DataGrid的Silverlight應用程序,所有工作都很好。然後我更新了VS 2008 SP1的Silverlight 3工具並重新構建了它。現在它有以下問題:DataGrid中發生了哪些變化,意味着它不再起作用了?
集合被修改時不會添加行。 ItemsSource屬性被設置爲一個ObservableCollection實例,並通知其內容何時更改。這對於Silverlight 2來說工作得很好。但是,在Silverlight 3中完全可以實現這一點,現在我必須清零然後重新設置ItemsSource - 這看起來好像隱藏了一個更大的問題,但我無法弄清楚那是什麼可能。
我無法再選擇一行或一個單元格。如果我很幸運,我可以在停止工作之前選擇一行。
我無法編輯任何東西。我懷疑這與前一點有關。
我會後一些來源,當我能夠,但首先我必須剝離下來到最低限度。與此同時,我希望有人對這裏可能發生的事情有一些瞭解。我對後面兩點的直覺是我的綁定不再有效,但這只是一種猜測,如果是這樣的話,我不知道哪一個。
感謝任何人可能提供的幫助。
更新
所以,我終於縮小我的問題到一個簡單的工作/不工作比較。如果我在我的元素類型中覆蓋Equals
,問題似乎就會發生。只要我這樣做,在ObservableCollection
中發生了一些奇怪的事情,它包含該類型,看起來和我的應用程序中斷。爲了使它更有趣,有一個檢查來確保重複的項目甚至不會被添加到集合中。我不完全知道爲什麼ObservableCollection
插入項目時需要比較相等性(堆棧跟蹤表示它使用IndexAt
),但這似乎會導致此問題。
那麼,有什麼想法?
謝謝,但我的收藏已被輸入。 +1雖然有用的信息。 – 2009-07-15 17:25:38