Ich habe eine Frage zum Vergleich von ObservableCollections. Grundsätzlich habe ich in meinem Szenario eine Business-Logik-Methode, die eine Reihe von Elementen aus der Datenbank für den aktuellen Benutzer in Form von ObservableCollection erhält. In regelmäßigen Abständen sollte ein BackgroundWorker Benutzerelemente aus der Datenbank mithilfe der oben genannten Methode abrufen, sie auf Änderungen vergleichen und, falls sie erkannt werden, eine Aktualisierung der Benutzeroberfläche auslösen. Das Problem besteht darin, dass die ObservableCollections immer unterschiedlich sind, auch wenn keine Änderungen an Daten in DB vorgenommen wurden.Vergleichen von ObservableCollections für alle Änderungen
Methode in Background verwendet:
private void UpdateItemList(object sender, DoWorkEventArgs e)
{
const int updateInterval = 30000;
while (isItemWorkerRunning)
{
Thread.Sleep(updateInterval);
Application.Current.Dispatcher.Invoke(() => ForceUpdateItemList());
}
}
private void ForceUpdateItemList()
{
var userItems = GetItems(userId);
if (lastUserItems!=userItems)
{
//force update
lastUserItems = userItems;
//update UI
}
}
Was mache ich falsch?