我正在建立一個使用WPF的聊天應用程序,我試圖理解哪個是實現它的最好方法。 我在我的ViewModel中有一個「接收」事件,當消息到達時,我想將它添加到ObservableCollection中,該消息包含發送和到達聊天會話的所有消息。在聊天應用程序中分享ObservableCollection消息是否正確?
當消息從新用戶到達時,我應該打開一個新的聊天窗口,並且如果消息從已創建窗口的用戶到達,我必須添加消息。
爲所有消息設置獨特的ObservableCollection是否是件好事?如果是這樣,我如何通知視圖,消息已經到達新用戶?我怎麼能把一個「過濾器」的數據綁定到用戶的消息的集合?
是的,不好的一點是,我想在TabControl中爲聊天會話創建新的TabItems,但有這個問題:http://stackoverflow.com/questions/6509264/wpf-weird-problem-in-databinding- with-tabcontrol,似乎我不能正確使用TextBox作爲單個TabItem內的內容,以便我不使用數據綁定動態創建TabItems,並在代碼隱藏中創建它們。所以我不知道如何讓VM通知視圖ObservableCollection已更改。 – Cris
@Cris - 虛擬機不需要做任何事情,ObservableCollection通知它它的集合發生了變化,你不需要進一步的工作。您也可以使用標籤頁內的[ItemsControl](http://msdn.microsoft.com/en-us/library/system.windows.controls.itemscontrol.aspx)來顯示您的消息。 – slugster