2011-07-12 26 views
0

我正在試圖圍繞如何利用WPF的綁定功能來處理這種情況。 我有一個我不控制的模型,它是一個外部系統,給定一些輸入(很多,實際上)產生一個輸出(在這裏也是很多)。這個系統的輸出是我需要在UI上顯示的,但我想知道如何利用WFP綁定來執行增量更新,因爲我不控制模型,也不知道在輸出自上次調用外部系統(實際上,可能很少發生更改,因此重新綁定while模型確實沒有意義)。利用WPF綁定與非增量完整模型更新

我希望能夠對UI執行增量更新,而不是重新綁定整個數據,這會損害UI的平滑性並代表可用性問題。 有沒有一種常見的方式來處理這個問題,或者我應該只是反思輸出並人爲地產生變更通知?

回答

1

將otuputs存儲在ObservableCollection(s)中並將您的UI元素綁定到該元素。編寫代碼以將模型輸出更新/添加到背景中的這些ObservableCollection,並且綁定到這些ObservableCollection的元素將自動更新。

有關於如何在這個關於MSDN

+0

我瞭解的ObservableCollection類achive好文章由Ken Getz的,問題是由外部系統產生時,我的模型不是以那種形式。那麼,您是否建議將其映射到ObservableCollection,然後通過每次檢查模型並相應地更改ObservableCollection來手動處理添加和其他類型的更改?我希望能夠誠實地提供最乾淨的解決方案。 – bibendus

+1

我的建議是將來自模型的數據轉換爲業務對象(CLR類),並將UI元素將綁定到的這些對象的ObservableCollection(s)。當您的後臺進程查詢您的模型的任何更改時,它將更新/添加/刪除ObservableCollection中的這些業務對象,並且您的UI元素將通過綁定來獲取更改... –

+0

這就是我所說的。如果您無法利用增量模型更新,是否有任何模式可用於處理綁定用戶界面的更新? – bibendus