Imagine Mam listę elementów:Replikowanie zmian w wykazie
- A - B - C
Teraz gdzieś serwer mówi mój wniosek, że pierwiastek B
została usunięta, a mimo to zapewnia tylko całą nową listę, a nie dokładną zmianę Detale. Ponieważ WinRT ListView
s automatycznie animuje dodawanie, usuwanie i przenoszenie elementów wewnątrz nich, wolałbym nie odświeżać listy kopii zapasowych i wywoływać Reset-INotifyCollectionChanged
-event, ponieważ animuje każdy element, który wygląda raczej tępo i szorstko. Zamiast tego, chcę obliczyć kroki, które są potrzebne do przekształcenia mojej lokalnej listy na listę, którą otrzymuję z serwera. (Trochę jak dystans dzielący, ale nie licząc kroków, ale samych kroków)
e. g .:
1. Delete element B 2. Add new element D to position 3
Jak to zrobić?
EDYCJA: Zamów sprawach w moim przypadku.
Można przyjrzeć się algorytmom różnicowym - https://en.wikipedia.org/wiki/Diff_utility –