【发布时间】:2018-11-16 11:52:44
【问题描述】:
我已经实现了一个普通的 MVVM 应用程序。我有一个绑定到ObservableCollection 的数据网格。刷新数据库时,更新集合,OnPropertyChanged 被正确触发,但在 UI 正确刷新之前存在延迟。我可以说,因为当我调试时,我可以看到在触发OnPropertyChanged 和调用ObservableCollection 的get 访问器之间有几秒钟的时间。滞后似乎与行数无关(即5或50行,似乎存在相同的滞后)。
我可以从哪里开始找出这种滞后来自哪里?
代码: 它是普通的 MVVM,因此:
private ObservableCollection<MyVar> _MyVars;
/// <summary>
/// List of pnl
/// </summary>
public ObservableCollection<MyVar> MyVars
{
get
{
return _MyVars;
}
set
{
_MyVars = value;
OnPropertyChanged("MyVars");
}
}
ObservableCollection MyVars 是通过调用数据库来设置的。基本上正在发生的事情是调用OnPropertyChanged("MyVars"); 和调用return _MyVars; 之间的滞后。 MyVars 是数据网格的项目源。
在发布和调试中,数据网格需要几秒钟来刷新,我发现我上面提到的两个调用之间存在延迟。我不能放更多的代码,我只是想知道如果有人有同样的情况,他/她采取了哪条路径来调试和解决问题。
谢谢,
皮埃尔
【问题讨论】:
-
您能否发布一些代码供我们查看,否则会做出假设,可能会导致您走错路。
-
在调试过程中会发生很多事情,因此它可能无法代表应用程序的实际发布版本中发生的情况。在没有调试器的情况下运行它也会有延迟吗?
标签: wpf mvvm inotifypropertychanged