DispatcherTimer()を使用して、データが別の場所で更新されるデータベースからリストビューを更新する更新関数を呼び出しています。したがって、リストビューはダッシュボードのように使用されます。WPテーブルビューをdbテーブルの更新として更新します。
private void Update(){
DateTime d = DateTime.Today;
items = (from i in DataManager.Entities.signals
where i.Date > d
orderby i.Id descending
select i).Take(MAX_NUM_OF_DISPLAYED);
this.lvDashboard.ItemsSource = items;
}
それはデータの一定量に達するまで、それは正常に動作します。私はデータベース内の最後に更新されたデータをクエリし、それをitemssourceに追加できることを知っています。私は自分のコードを簡単かつ明確にしようとしています。アイデアや提案をいただけますか?
----------------更新---
それは1000行のデータを持つすべての1~2秒を更新し、データウィンドウは、最近のデータに動き続けます。プロセスメモリが増え続ける理由。 DataTableはDBの更新を監視していますか? DBが更新された場合、DBはDataTableを更新しますか?
正確に失敗した場合(あなたのリストビューをかなり頻繁に更新していますか)??? – MrClan
シンプルではっきりしていても、しばしば速く一緒にうまく動作しません;)しかし、すべての人々が既に提案しているように。 ItemsSourceをリセットすることは、可能な限り最悪です。データバインディングの力を使い、ObservableCollectionをItemsSourceとして使用し、データをリストに追加し、残りをwpfで処理させます。 – dowhilefor