2017-02-15 4 views
0

Ich habe eine ObservableCollection<LegEventItems>, die Elemente enthält. Ich habe eine Zeitleiste, in der ich das früheste Datum in dieser Sammlung für die Periode Anfang Eigentum erhalten muss. Ich bin nicht sicher, was der beste Weg ist, dies zu tun.C#/WPF Bindung an das früheste Datum in der Sammlung

Ich möchte dies alles in XAML (mit Ausnahme der Erstellung von Eigenschaften oder Konvertern) wenn möglich tun. Ich habe versucht, einen Konverter zu erstellen und verwenden Sie es wie so:

{Binding Source={x:Static cs:CurrentData.LegEventItems}, Converter={StaticResource earliestDateCnv}}

Das Problem ist, die Werte nicht in den Konverter aktualisiert. Es wird einmal aufgerufen, wenn die Timeline zum ersten Mal gerendert wird. Wenn jedoch mehr Objekte aus der beobachtbaren Sammlung entfernt/entfernt werden, wird sie nicht aktualisiert.

Ich habe INotifyPropertyChanged auf den LegEventItems bereits aufgenommen. Irgendeine Idee?

+0

Die Bindung wird nicht ausgelöst, wenn Elemente der Auflistung hinzugefügt oder aus ihr entfernt werden, weil das Auflistungsobjekt nicht ersetzt wird. Sie sollten Ihrem Ansichtsmodell eine EarliestLegEventItem-Eigenschaft hinzufügen. – Clemens

+0

@Clemens Ich verwende MVVM nicht. Was würde eine Eigenschaft wie diese auch aktualisieren, wenn ein Gegenstand entfernt/hinzugefügt wird? Es müsste ständig aktualisiert werden, da ich Gegenstände von überall her hinzufügen lasse. – James

+0

Verwenden Sie keine statische Eigenschaft - ich bezweifle ernsthaft, dass sie Teil des INotifyPropertyChanged-Mechanismus sind, da es sich bei Schnittstellen beispielsweise um Dinge handelt. – hoodaticus

Antwort

-1

Eine Lösung gefunden. Ich abonniere das Ereignis CollectionChanged in meiner Benutzersteuerungsklasse (mit der Zeitleiste). Wenn das ausgelöst wird, aktualisiere ich die periodStart und periodEnd Eigenschaften. Ich wünschte, ich wäre in der Lage, reines Xaml zu verwenden, wie ich es in der Frage gesagt hatte, aber das ist eine Lösung, mit der ich gut rollen kann.

Verwandte Themen