我使用的解决方案来自:AutoRefresh Entity Framework
我有 DataGrid 和其他控件(图表等)。我想实时更新这些控件。多亏了这个解决方案,我能够做到这一点。
使用此代码:
TeamLeaderMetrics = New AutorefreshWrapper(Of tbl_Metrics_Employee)((From a In entityconn.tbl_Metrics_TeamLeader Where a.LogDate = Date.Today AndAlso a.EEID = EEID()), entityconn, RefreshMode.StoreWins)
TeamLeaderMetrics
的位置
Private _TeamLeaderMetrics As AutoRefreshWrapper(Of tbl_Metrics_Employee)
属性,即我的 DataGrid ItemsSource 。
它有效,一切都在更新。但是,问题在于UI正在冻结。
在ServiceBrokerUtility
静态类依赖项中 - OnChange正在使用:
Application.Current.Dispatcher.BeginInvoke(DirectCast(Sub() notifyRefresh.OnRefresh(), Action))
所以我认为它在后台运行,但UI仍然冻结。
如何在不实时冻结UI的情况下更新控件?我应该以除 ViewModel 控制器之外的其他方式调用此解决方案吗?
感谢您的任何建议。