2011-07-12 24 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