问题很简单:
我的View应该显示来自WCF服务的数据。该数据以高频异步更新,因此当服务器端数据发生更改时,GUI应相应地进行更新。
View显示了大量数据,基本上绑定了ViewModel中公开的50/60个字段。
Model部分基本上是一个POCO对象,其中包含在GUI中显示的50/60个字段。是的,ViewModel向View公开了Model对象。(请注意,Model对象实现了INotifyPropertyChanged接口,以便在属性值更改时通知View。)
现在,我编写了一个"DataService"层,它与WCF服务交互,并负责根据WCF服务返回的数据更新Model。当服务器端数据更新时,为了提高性能,WCF服务仅向客户端返回已更改的字段集。
因此,在DataService中有一个事件处理程序,像以下方式管理wcf服务更新:
View显示了大量数据,基本上绑定了ViewModel中公开的50/60个字段。
Model部分基本上是一个POCO对象,其中包含在GUI中显示的50/60个字段。是的,ViewModel向View公开了Model对象。(请注意,Model对象实现了INotifyPropertyChanged接口,以便在属性值更改时通知View。)
现在,我编写了一个"DataService"层,它与WCF服务交互,并负责根据WCF服务返回的数据更新Model。当服务器端数据更新时,为了提高性能,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"处理程序的性能?
谢谢! Jhon