Mam pole kombi z dołączonym źródłem elementów za pomocą prostego wiązania. Czy istnieje sposób, aby odświeżyć to powiązanie po załadowaniu pola kombi?
c#
wpf
data-binding
Techee
źródło
źródło
Odpowiedzi:
Możesz użyć wyrażeń wiążących:
Ale jak zauważył Blindmeis, możesz również odpalać powiadomienia o zmianach, co więcej, jeśli twoja kolekcja implementuje
INotifyCollectionChanged
(na przykład zaimplementowano wObservableCollection<T>
), zsynchronizuje się, więc nie musisz tego robić.źródło
jeśli używasz mvvm, a twoje itemsource znajduje się w twoim vm. po prostu wywołaj INotifyPropertyChanged dla swojej właściwości kolekcji, gdy chcesz odświeżyć.
źródło
INotifyPropertyChanged
, ale będziesz musiał zachować ten port jako prywatny że wrapper, a zatem trzeba napisać nieruchomości i sposób wszystko na tym porcie użyć gdzie indziej w projekcie, aby zapewnić, że właściwości jesteś zainteresowany powiadamiania na zawsze przejść przez owinięcienameof(YourCollectionProperty)
w przeciwieństwie do dosłownego ciągu. Zapobiega to refaktoryzacji błędów i jest bardziej jasne, co jest faktycznie zamierzone. Tutaj oczywiście nie można użyćCallerMemberName
atrybutu, który jest jeszcze ładniejszyAby dodać moje 2 centy, jeśli chcesz zaktualizować swoje źródło danych o nową wartość swojej Kontroli, musisz zadzwonić
UpdateSource()
zamiastUpdateTarget()
:źródło
Wersja przyjazna dla MultiBinding ...
źródło
Spróbuj użyć
BindingExpression.UpdateTarget()
źródło
Pobierałem dane z zaplecza i aktualizowałem ekran za pomocą tylko jednej linii kodu. Zadziałało. Nie jestem pewien, dlaczego musimy wdrożyć Interface. (Windows 10, UWP)
źródło