2016-04-18 1 views
1

Ich habe eine Liste von Accounts mit einigen Eigenschaften, die in einer Datenbank gespeichert sind.Datenbindung WPF C# WPF zu Etiketten in Codebehind

auf meinem Fenster bin ich den Benutzernamen aus der Liste Konto

for (int i = 0; i < liste.Count; i++) 
{ 
    Label l = new Label(); 
    l.Height = 30; 

    l.HorizontalAlignment = HorizontalAlignment.Left; 
    l.Content = liste[i].Username + "\n"; 
    l.MouseDown += new MouseButtonEventHandler(Selectuser); 
    l.HorizontalContentAlignment = HorizontalAlignment.Left; 
    stack.Children.Add(l); // stackpanel in the xaml 
    SetKnownImageAcc(Convert.ToInt32(liste[i].AccAId)); // add a picture near the username 
} 

So müssen zeigen, werde ich jetzt ich Mousebutton Ereignis ich auf jedem Etikett erstellt, aber wenn ich auf einem der Benutzernamen klicken ich den Code hinterher kann ich nur den Inhalt des Labels bekommen, damit ich nicht weiß, um welches Konto es sich genau handelt. Sicher kann ich eine Schleife machen zu überprüfen liste[i].Username = this.content Aber mein Problem ist dann, dass ich mehr Konten habe und zum Beispiel habe ich 2 Konten ein Facebook und ein Google, aber sie haben den gleichen Benutzernamen, wie ich jetzt im Codebehind wissen, was es ausmacht Ich habe geklickt

Ein Freund sagte mir, dass ich es mit Datenbindung versuchen sollte, aber ich bin neu in der Codierung, so weiß ich nicht wirklich, wie es geht oder ob das mit Databinding funktioniert.

Vielen Dank für Ihre Hilfe :)

Antwort

2

Eine Möglichkeit, dass die Tag-Eigenschaft des Label setzt tun können:

l.Tag = liste[i]; 

Dann können Sie Ihre Benutzer zurück in der gezeichneten Methode erhalten können:

var myUser = (User)((Label)sender).Tag; 

Aber Ihr Freund hat Recht: Datenbindung ist ein viel besserer Weg. In den meisten Fällen sollten Sie keinen Code im Code hinter der Datei haben (außer dem automatisch generierten Code). Versuchen Sie MVVM auf Ihrer bevorzugten Suchmaschine zu suchen.

+0

danke ich werde nach MVVM suchen :) –