2011-09-08 68 views
1

我有一個項目,我必須得出結論(感謝員工在截止日期前辭去工作)。爲什麼使用IEditableCollectionView?

他一直在WPF工作。界面看起來很酷,但它從來沒有能夠從公司的舊數據訪問DLL中收集數據。 (重寫DLL是一個好主意,但在截止日期之前的短時間內不可行)收集數據是重點!

該項目被拋在我身上,但我不是WPF開發人員。我被告知要使它與WinForms協同工作,這就是我所知道的。我在幾個小時內啓動了一個WinForm界面,並且它看起來和WPF版本一樣好......我知道它在做什麼。 WPF涉及我還沒學過的voo-doo。

有些東西在WPF項目中使用,我需要掌握它們的功能,我沒有時間完全重新設計它。

業務邏輯層將ObservableCollection返回給WPF接口。

WPF接口採用ObservableCollection並使用其參數Source將其存儲在CollectionViewSource中。

好的,我立即想到DataGridView控制和使用DataSource參數。

我在軌道上嗎?

IEditableCollectionView是什麼意思?有必要嗎?如果不是,我應該刪除所有對它的引用嗎?

回答

2

ObservableCollection,CollectionViewSource等在WPF的MVVM(MVC ... +)方案中很重要。你可以放棄它們,但你肯定可以在WinForms項目中重用它們。爲了保持用戶界面和數據之間的清晰分離,實際上可能會更好。

你也可以把它們作爲「更標準」的集合,這隻會導致一些不必要的開銷。而且,由於滿足你的期限至關重要,這可能是一條可行的路。

+0

保羅,你的想法在技術上更好,它已被標記爲答案...尤其是對於在這裏漫步的其他人。但是,喬希的想法實施起來更快,所以這就是我現在使用的代碼。 ;) – jp2code

1

可觀察集合用於使其他控件在集合添加,刪除或刷新時可以參與。這有助於保持整個UI同步。就IEditableCollectionView而言,它會引發INotifyPropertyChanged事件,以便在集合中的屬性更新時,WPF表單上的控件自動更新。

如果你在WinForms中這樣做,你只需要在收藏發生變化時引發事件。

+0

喬希,不知道如何標記答案。我實際上實現了你的想法,但我認爲保羅的想法是一個更好的技術 - 我只是沒有時間。 – jp2code