我有一個應用程序,定期輪詢Web服務(大約每10秒)。在我的應用程序邏輯中,我有一個持有消息的List<Message>
。所有消息都有一個ID,可能會被無序接收。因此該類實現了接口。C#,WinForms:定期更新列表的哪種視圖類型?
什麼WinForm控件將適合regurarly更新(與項目的順序)。我打算保存最後的500條消息。我應該對列表進行排序,然後更新整個表單?或者數據綁定是否合法(關於性能)?
我有一個應用程序,定期輪詢Web服務(大約每10秒)。在我的應用程序邏輯中,我有一個持有消息的List<Message>
。所有消息都有一個ID,可能會被無序接收。因此該類實現了接口。C#,WinForms:定期更新列表的哪種視圖類型?
什麼WinForm控件將適合regurarly更新(與項目的順序)。我打算保存最後的500條消息。我應該對列表進行排序,然後更新整個表單?或者數據綁定是否合法(關於性能)?
如果您正在使用WinForms,我會推薦一個ListView控件,將View-property設置爲Details以及BackgroundWorker控件。
如果列表每次都會發生變化,並且您的訂單不一致,我只需對您的列表進行排序並重新更新整個用戶界面。
您應該可以在後臺線程中執行列表抓取和排序,因此主要的「用戶界面」阻塞只會重新繪製用戶界面。有500個元素,這不會很快,但它應該是可以容忍的。
我會使用數據綁定與System.ComponentModel包裝您的列表中的BindingList。
BindingList在這種情況下,將允許您用新數據更新您的List對象,並自動將您的數據重新綁定到您用於顯示的控件。
你控制你的使用取決於你希望看起來如何。但是,支持數據綁定到集合的任何控件都可以工作。