So binden Sie eine ItemsSource an eine private Eigenschaft

8

Wie binden Sie WPF an ItemsSource an eine private Eigenschaft?

%Vor% %Vor%

Die Artikelliste wird ausgefüllt, während das Formular geladen wird.

    
sameera 05.09.2011, 10:59
quelle

4 Antworten

20

DataBinding in WPF funktioniert nur mit öffentlichen Eigenschaften.

MSDN :

  

Die Eigenschaften, die Sie als Bindungsquelleneigenschaften für eine Bindung verwenden, müssen   Seien Sie öffentliche Eigenschaften Ihrer Klasse. Explizit definierte Schnittstelle   auf Eigenschaften kann nicht für bindende Zwecke zugegriffen werden, noch kann geschützt werden,   private, interne oder virtuelle Eigenschaften, die keine Basis haben   Implementierung

    
Stephan Bauer 05.09.2011 11:02
quelle
3

Wenn Sie das wirklich wirklich tun wollten, müssten Sie einen benutzerdefinierten Typdeskriptor bereitstellen, indem Sie ICustomTypeDescriptor implementieren - das die zusätzliche Eigenschaft über eine benutzerdefinierte PropertyDescriptor neben den regulären öffentlichen Eigenschaften bereitstellt. Sie können diese Schnittstelle für den Typ selbst oder über TypeDescriptionProvider ; Letzteres wird bevorzugt, da es in mehreren Szenarien funktioniert (Dinge wie leere Listen, ohne dass auch eine benutzerdefinierte Liste mit einer ITypedList -Implementierung bereitgestellt werden muss). Dies ist ein viel Arbeit, und es wirklich ist es nicht wert, außer in extremen Fällen. Aber es kann getan werden.

    
Marc Gravell 29.08.2014 08:56
quelle
2

Dies ist nicht möglich, wenn Sie möchten, können Sie stattdessen internal verwenden.

... und benutze ObservableCollection<T> und vergiss nicht den DataContext der Ansicht zu setzen.

    
WaltiD 05.09.2011 11:06
quelle
1

Sie benötigen eine Relative-Source-Bindung, jetzt ist Ihre Bindung an den DataContext Ihres ItemBuySellAddEdit (FrameworkElement) Atleast, das ist meine Impression, weil Sie partial verwenden. Wenn es sich um ein ViewModel handelt, überprüfen Sie das Ausgabefenster und suchen Sie nach verbindlichen Fehlern.

%Vor%

Aber die Antwort von Stephan Bauer gilt immer noch.

Berücksichtigen Sie auch die Antwort von WaltiD, wenn neue Elemente in dieser Liste automatisch angezeigt werden sollen.

    
LunicLynx 09.11.2012 16:20
quelle

Tags und Links