Bindung eine ObservableCollection.Die Zählung Label mit WPF
Habe ich eine einfache Label
einschließen sollte das gebundene .Count
Wert einer Eigenschaft eines ObservableCollection
.
Die Sache ist, dass das Ergebnis immer 0 (null). Die gleiche Eigenschaft gebunden ist an ein DataGrid, welches perfekt funktioniert und auch updates, wenn sich etwas geändert hat in der Sammlung.
Was mache ich hier falsch?
Hier ist mein code:
<Label ContentStringFormat="Members: {0}">
<Label.Content>
<Binding Path="MembersList.Count" Mode="OneWay" UpdateSourceTrigger="Default" />
</Label.Content>
</Label>
Der Eigenschaft sieht wie folgt aus:
public static ObservableCollection<Mitglied> MembersList { get; set; }
- Sind Sie die Implementierung von INotifyPropertyChanged auf Ihre Daten gebunden-Klasse?
- welche Klasse meinst du? Mitglied? Ja, das Tue ich
- versuchen Sie, diese <Label Content="{Binding MembersList.Count}"/>
- Je nachdem, welcher Klasse der MembersList Eigenschaft ist in. Damit die Datenbindung funktioniert, ist laden Sie die Sammlung von einer externen Quelle, die Sie benötigen, um die INotifyPropertyChanged implementieren, die auf die Klasse und erhöhen die PropertChanged-Ereignis, wenn der Satz heißt auf dem Grundstück. msdn.microsoft.com/en-us/library/...
- Ich habe, funktioniert nicht :/
- Mein spidey-Gefühl sagt mir, zu versuchen, entfernen Sie die
ContentStringFormat
. - BTW jeder,
ObservableCollection<T>
tut implementieren INPC, und hebtPropertyChanged
für dieCount
Eigenschaft. - Ok. Ich versuchen würde, die INotifyPropertyChanged implementieren. Dies nicht das problem löst.
- Auch ich entfernte die
ContentStringFormat
. Diese. Die Werte 0. - Irgendeine Idee? Ich glaube, ich habe etwas gelesen über das binden von Ganzzahlen wird nicht funktionieren? was mich wundert ist, dass das datagrid hat keine Probleme mit der ObservableCollection
- Kann es im Zusammenhang mit Ihrer Eigenschaft als statisch. stackoverflow.com/questions/936304/binding-to-static-property
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, Diese...
MainWindow.Xaml.cs->
MainWindow.xaml->
Kann ich nur vermuten, du hast nicht tatsächlich Hinzugefügt, alle Elemente der Auflistung. Wenn Sie denken, Sie sind, Sie haben uns eine komplette repro.
Funktioniert dies perfekt für mich:
MainWindow.xaml
MainWindow.xaml.cs
BTW, das ist weit mehr lapidar:
Hallo Sie werden Benachrichtigt CollectionChanged, dann wird es Funktionieren
DataGrid verwendet das collectionChanged-und damit die Arbeit für DataGrid.