Ich binde eine Objektliste an ein ItemsControl, das ein TextBox-Steuerelement enthält.WPF Aktualisiert die Bindungseigenschaften mehrerer Objekte, die gleichzeitig in einer Liste enthalten sind
Ich möchte in der Lage sein, die Textbox-Hintergrundfarbe basierend auf der Hintergrundfarbe Eigenschaft des Bind-Objekts zu ändern.
Es funktioniert perfekt mit der INotifyPropertyChanged-Schnittstelle, aber wenn ich 1000 Objekte aktualisieren muss, dauert es sehr viel Zeit, denke ich, weil es die Steuerelemente einzeln aktualisieren muss.
Hat jemand einen Tipp für mich zu sagen, alle meine Objekte Hintergrundfarbe aktualisieren und dann die Bindung in einer Aufnahme statt Objekt für Objekt aktualisieren?
Danke,
Mat
Sind Sie eine Property Veranstaltung mit den „Background“ Eigenschaftsnamen oder mit null Brennen? – Guy
Im Allgemeinen sollten Sie ein ItemTemplate verwenden, um die Hintergrundfarbe Ihrer Elemente basierend auf einer Eigenschaft in ihnen zu stylen, anstatt die Farbe explizit als eine Farbe in dem Objekt zu haben, an das Sie binden. Beachten Sie auch, dass die Verwendung eines von VirtualizationStackPanel (z. B. ListBox) abgeleiteten Steuerelements anstelle von ItemsControl Ihnen die UI-Virtualisierung kostenlos ermöglicht (es werden nicht alle UI-Objekte aktualisiert, wenn der Benutzer sie nicht sehen kann). – Guy
Ich feuere PropertyChanged-Ereignis mit dem Eigenschaftsnamen " Hintergrundfarbe" – Matx