问题很简单:基本上我的视图应该显示来自 WCF 服务的数据。数据异步更新的频率很高,所以当服务器端的数据发生变化时,应该相应地更新GUI。
View 显示了很多数据,所以基本上它绑定了 ViewModel 中公开的 50/60 字段。
模型部分基本上是一个 POCO 对象,其中包含 GUI 中显示的 50/60 字段。是的,ViewModel 将 Model 对象暴露给 View。(请注意,模型对象实现了 INotifyPropertyChanged,以便在属性值更改时通知视图。)
现在,我编写了一个与 WCF 服务交互的“DataService”层,它负责根据 WCF 服务返回的数据更新模型。当数据在服务器端更新时,WCF 服务出于性能原因仅将更改的字段集返回给客户端。
因此,在 DataService 中有一个事件处理程序来管理 wcf 服务更新,如下所示:
void OnServiceUpdated(UpdateArgs args)
{
foreach(Field field in args.ChangedFields)
{
if(field.Key == "BetName") _modelBet.BetName = field.Value;
else if(field.Key == "BetUser") _modelBet.BetUser = field.Value;
[...]
//the same for 50 fields...
}
}
现在需要这个更新模型的可怕代码,因为我们只想更新模型中没有在服务器端更改的字段。(注意 wcf 服务 API 不能更改)。
我的问题是:为了提高“OnServiceUpdated”处理程序的性能,您有什么建议?
在此先感谢,约翰