ive pracuje nad tym od kilku dni, ale cant wydają się pochodzić z roztworemUtrzymywanie ostrości/SelectedItem po zmianie DataGrid ItemsSource
mam kodu na zegar, który odświeża DataGrid
co kilka sekund
próbowałem wiele opcji odświeżania, ale w końcu wszyscy użytkownicy tracą ostrość, a czasami również SelectedItem
herezje mój kod:
AddHandler bw.RunWorkerCompleted, Function(sender As Object, e As ComponentModel.RunWorkerCompletedEventArgs)
Dim lst = e.Result
Dim lst2 = CType(lst, List(Of Object)).OfType(Of INotifyPropertyChanged)()
'If Items.Count = 0 Then
Dim a = SelectedItem
Collection.Clear()
Collection.AddRange(lst2)
SelectedItem = a
'ItemsSource = lst
'End If
'For Each rw In lst
' Dim mtch = Collection.Where(Function(x) x.GetHashCode = rw.GetHashCode)
'Next
opuściłem komentarzy, dzięki czemu można zobaczyć różne sposoby próbowałem
wyniki:
gdybym bezpośrednio ustawić ItemsSource
z wyniku (jak w komentarzu), to keep SelectedItem
i Keyboard.FocusedElement
stały aż do końca powyższego kodu, ale gdzieś między końcem tego kodu i następnego kleszcza są zarówno przekształcone Nothing
jeśli pójdę z ObservableCollection
następnie SelectedItem
traci tak szybko, jak wyczyścić i kolekcji Keyboard.FocusedElement
jest zagubiony tylko między kleszczami. choć SelectedItem można zachować tutaj ze zmienną podkładowej temp
więc chodzi o to, w jaki sposób odświeżyć pozycji z db zachowując (najbardziej istotne) ostrość klawiatury
i tak, wiem, że ObservableCollections
nie są "wykonane" do zresetowania. tak naprawdę nie jestem zainteresowany jej użyciem. ma on tylko jedną zaletę utrzymywania wartości SelectedItem
Próbowałem też podłączyć do kilku zdarzeń (OnItemsSourceChanged
, SourceUpdated
...), ale nie zostały one zwolnione w odpowiednim czasie, lub nie strzelał w ogóle
żadnych pomysłów?
id naprawdę najbardziej doceniają
dziękuję
sprawdź to - http://stackoverflow.com/questions/12808479/updating-listbox-without-losing-selected-item-wpf – user1221765
dzięki, po nikt tu nie odpowiedział, zrobiłem post w msdn i dostałem całkiem niezły odpowiedź, na razie działa dobrze. link, który ustawiłeś, nie ma żadnych wiadomości, rozważałbym również aktualizację rekordów 1 przez 1., ale jeszcze do tego nie doszło. i tak dziękuję za zainteresowanie! –
Witaj Yisman, czy możesz opublikować link, w którym widzę rozwiązanie. to pomoże mi także się uczyć. dzięki :) – user1221765