Jak skopiować elementy z List<..> do ObservableCollection<...>?

Odpowiedz Nowy wątek
2019-09-05 13:18

Rejestracja: 2 lata temu

Ostatnio: 1 tydzień temu

0

Oczywiście pomijam rozwiązanie kopiowania po elemencie w pętli, bo na to sam wpadłem. Podobnie przez użycie konstruktora, ponieważ ObservableCollection już istnieje.
Jakieś pomysły?

Pozostało 580 znaków

2019-09-05 13:34

Rejestracja: 17 lat temu

Ostatnio: 4 godziny temu

Lokalizacja: Kraków

0

Są dostępne jedynie te dwa powyższe, po co CI kolejny?


It's easy to hate code you didn't write, without an understanding of the context in which it was written.

Pozostało 580 znaków

2019-09-05 13:36

Rejestracja: 3 lata temu

Ostatnio: 1 minuta temu

0

Co jest złego w skopiowaniu w pętli element po elemencie (złożoność kopiowania i tak będzie O(n))?


ta kolekcja generuje notyfikacje dla UI dla każdego dodanego elementu, i przy dużych ilościach jest to całkiem wolne - neves 2019-09-05 13:38
Rzeczywiście, racja; w takim razie, przy braku metody w interfejsie, wygląda na to, że nic nie da się zrobić. - lion137 2019-09-05 13:43

Pozostało 580 znaków

2019-09-05 13:44

Rejestracja: 2 lata temu

Ostatnio: 1 tydzień temu

0
neves napisał(a):

Są dostępne jedynie te dwa powyższe, po co CI kolejny?

Myślałem o czymś w stylu AddRange, którego nie znalazłem w ObservableCollection, ale jak nie ma to co zrobić.

Pozostało 580 znaków

2019-09-05 13:50

Rejestracja: 17 lat temu

Ostatnio: 4 godziny temu

Lokalizacja: Kraków

0

Podmienia się ObservableCollection na nową instancję (czyli konstruktor), albo odpina się binding łączący kolekcje z UI i dodaje pojedynczo i podpina z nowu. Preferowana jest opcja z podmianą.


It's easy to hate code you didn't write, without an understanding of the context in which it was written.
edytowany 1x, ostatnio: neves, 2019-09-05 13:51

Pozostało 580 znaków

2019-09-05 13:54

Rejestracja: 1 rok temu

Ostatnio: 10 miesięcy temu

0

Spróbuj tego :

MyObservableColletction = new ObservableCollection<MyModel>(myList.Select(md => new MyModel(md)));

Pozostało 580 znaków

2019-09-05 14:50
Moderator

Rejestracja: 18 lat temu

Ostatnio: 10 godzin temu

1

Jeżeli możesz użyć swojej klasy, to są implementacje ObservableCollection<T> z dostępnym AddRange(): https://stackoverflow.com/que[...]od-so-i-get-notified-for-each

edytowany 1x, ostatnio: Ktos, 2019-09-05 15:19

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0