Laden...

Binding list<t>

Erstellt von cpetit vor 13 Jahren Letzter Beitrag vor 13 Jahren 2.242 Views
C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 13 Jahren
Binding list<t>

Hallo,

bräuchte mal hilfe von euch. Habe fast das ganze Netz abgesucht aber keine Lösung gefunden. Vielleicht fehlt mir auch der passend Suchbegriff.

Nehmen wir mal an ich hätte eine Klasse Auto und eine Klasse Sitze.

Die Klasse Sitze habe ich in der Klasse Auto als List<t>

    public class A_Auto 
    {

        public string Typ { get; set; }


        public string Bezeichnung { get; set; }
 

        public List<A_Sitze> SitzeListe { get; set; }

    }

In meinem PWF-Fenster habe ich die zwei Felder für Typ und Bezeichnung die auch gefüllt werden aus der Klasse A_Auto und eine Listbox die mir die Daten aus der Liste "SitzeListe" anzeigen soll. Bekomme aber keine Daten in der Listbox angezeigt.

ItemsSource="{Binding SitzeListe}" der Listbox
Text="{Binding SitzeListe.Bezeichnung}" des Textfeldes in der Listbox.

Kann mir jemand weiter helfen?

849 Beiträge seit 2006
vor 13 Jahren

Hi, probier mal Text="{Binding Bezeichnung} in der listbox geht das Binding schon auf das einzelne Element der Liste.

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 13 Jahren

Nein geht auch nicht.

Muss ich noch vielleicht ein Property setzen im meinem ViewModel und wenn ja wie.

849 Beiträge seit 2006
vor 13 Jahren

Hallo,

Wann und wie füllst/erstellst du denn deine Liste? Bei List<t> wird nicht aktualisiert wenn du items nachträglich hinzufügst.
Dazu brauchst du ObservableCollection<t>. Erstellst du gar die Liste erst nachträglich nach dem Binding muss dein Model INotifyPropertyChanged implementieren.

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 13 Jahren

Ist für jeden Eintrag vorhanden.

Hier für A_Auto: hier wird reingesprungen wenn ich den haltepunkt setzte

        
public string Typ
        {
            get
            {
                if (aAuto == null)
                    return string.Empty;
                return aAuto.Typ ;
            }
            set
            {
                if (aAuto.Typ != value)
                {
                    aAuto.Typ = value;
                    OnPropertyChanged("Typ");
                }
            }
        }

Hier für die Liste: dort springt er nicht rein.

public string Bezeichnung
        {
            get { return SitzeListe.Bezeichnung; }
            set
            {
                if (SitzeListe.Bezeichnung!= value)
                {
                    SitzeListe.Bezeichnung= value;
                    OnPropertyChanged("Bezeichnung");
                }
            }
        }

849 Beiträge seit 2006
vor 13 Jahren

*confused*

SitzeListe ist doch vom typ List<A_Sitze>.. wieso kannst du mit SitzeListe.Bezeichnung darauf zugreifen ?!?

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 13 Jahren

Darum


public A_Sitze SitzeListe
{
            get { return Info as A_Sitze; }
}

habe ich vielleicht vergessen zu erwähnen.

849 Beiträge seit 2006
vor 13 Jahren

sorry, dein Beispiel ist mir für heute zu verworren.

Entweder ich habe heute nen Knoten im Hirn, oder dein Model bedarf einer Überarbeitung. Aus diesen Teilstücken kann ich nichts mehr herleiten.

Grüße

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo cpetit,

schau dir mal Data Binding Overview an, dann solltest du das Problem selbst lösen können.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

C
cpetit Themenstarter:in
54 Beiträge seit 2007
vor 13 Jahren

Danke, schaue ich mir gleich mal an.