Ich habe zwei ObservableCollections, eine mit einer aktuellen Liste von Mitarbeitern und eine mit einer neuen. Wenn der neue einen Angestellten enthält, der nicht in der alten Liste ist, möchte ich ihn zu der alten Liste hinzufügen.Vergleichen von Objekten in zwei ObservableCollections
Wenn die neue Liste keinen Mitarbeiter in der alten Liste enthält, möchte ich ihn aus der alten Liste entfernen. (Ich hoffe das ergibt Sinn).
Hier ist was ich versucht habe;
foreach (var employee in _currentUsers.ToList())
{
if (!newUsers.Contains(employee))
{
Dispatcher.Invoke(() =>
{
_currentUsers.Remove(employee);
CurrentUsageDataGrid.Items.Refresh();
});
}
}
foreach (var employee in newUsers)
{
if (!_currentUsers.Contains(employee))
{
Dispatcher.Invoke(() =>
{
_currentUsers.Add(employee);
CurrentUsageDataGrid.Items.Refresh();
});
}
}
Das funktioniert nicht so, auch wenn ich weiß, dass die Listen der Dispatcher.Invoke()
noch nicht geändert haben, feuert. Bin ich falsch verstanden, wie Contains
funktioniert und/oder gibt es eine "bessere" Art, einen solchen Check durchzuführen?