我是一個.NET開發人員,從Winforms轉移到WPF,遇到了一個常見問題,我想找到一個WPF特定的解決方案。我有一個基本上綁定到SQL中的表的GridView。我碰巧使用MVVM,所以這是間接完成的,GridView實際上綁定到ViewModel,它從實體模型中獲取數據。在Winforms中,爲了保持實時同步,我需要一個後臺線程,每隔一段時間搜索一次更新並獲取最新版本的SQL表數據。當然,我可以在WPF中做到這一點,但我想知道是否有更好的方式在WPF中執行此操作,UI可以在更新表時真正更新「實時」。該應用程序將在許多機器上,所以當本地用戶通過應用程序以某種方式更改數據時,我不能簡單地獲得更新。刷新按鈕很糟糕,所以我也不想那麼做。 WPF中有這樣的最佳做法嗎?在WPF中保持GridView爲最新狀態
0
A
回答
2
輪詢方法仍然健全。就「更好」的方式而言,在SQL 2005或更新版本的ADO.NET中,有一些方法可以設置通知(例如查詢更改通知)。這不是一個WPF特定的實現,但是,可以應用於Windows窗體。
1
tbh,我會做它非常相似,即後臺線程輪詢,然後更新綁定的集合。如果你想要一個雙工通信,你可以做到這一點o避免輪詢,但它帶來了自己的問題,並沒有任何關於WPF。請注意以下幾點:
- 使用ObservableCollection作爲ItemsSource。通過這種方式,您可以提供已更改的「增量」,從而將服務器通信降至最低。
- 當您從後臺修改ObservableCollection時使用Dispatcher.Invoke,否則......您知道WinForms的問題。
相關問題
- 1. 保持Gridview狀態
- 2. DCEF3保持最新狀態嗎?
- 3. 讓叉子保持最新狀態
- 4. 在瞬息萬變的世界中保持最新狀態
- 5. 在Yesod中保持狀態
- 6. WPF Xaml旋轉動畫保持最終狀態
- 7. 在GridView行中保持控件的狀態
- 8. 讓NSManagedObject保持最新狀態同時保留它
- 9. 使JUnit測試保持最新狀態的最佳實踐
- 10. DialogFragment中的ListView不會保持最新狀態
- 11. 如何使SDK更新保持最新狀態?
- 12. QWidget如何保持最佳狀態?
- 13. ASP.NET MVC:保持最後一頁狀態
- 14. 如何在GridView Android中保持CheckBox持久性(處理複選框狀態)?
- 15. nested gridview不會在pageindexchanging後保持展開狀態
- 16. 在回發時保持GridView複選框狀態
- 17. 保持PCB和線程狀態保持在TCB中的過程狀態
- 18. 狀態數組保持重新排序
- 19. 可以做些什麼來使OpenGL保持最新狀態?
- 20. 讓Git存儲庫備份保持最新狀態
- 21. 如何讓Docker主機自動保持最新狀態?
- 22. 如何讓python HTTP Server永遠保持最新狀態?
- 23. 保持一個對象最新的休眠狀態
- 24. 如何使Elasticsearch保持與SQLServer無代碼的最新狀態?
- 25. 如何通過GitHub回購讓Drupal保持最新狀態?
- 26. 保持UI與服務的最新狀態
- 27. 如何使用git-svn讓svn:external保持最新狀態?
- 28. 使SQL Server開發環境保持最新狀態
- 29. 使用任何或大多數語言保持最新狀態
- 30. 其他人如何使剪貼庫保持最新狀態?