2016-04-18 28 views
1

データベースに保存されているいくつかのプロパティを持つアカウントの一覧があります。私の窓 - 私は、アカウントのリストデータバインディングWPF C#CodebehindのラベルへのWPF

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 
} 

からユーザー名を表示しようとしてオン

だから私は、私が作成したすべてのラベルになりましたIマウス・ボタンのイベントを持っていますが、私は私のコードのユーザー名のいずれかをクリックしたときに私はそれが正確にどのアカウントがわからないので、私はラベルの内容を得ることができます。 確かに私はループをチェックすることができますliste[i].Username = this.content しかし、私の問題は、私はより多くのアカウントを持っていると私は2つのアカウントが1つのFacebookと1つのGoogleを持っていますが、彼らは同じユーザー名を持ってどのように今私はcodebehind私がクリックしたところです

友人はデータバインディングで試してみるべきですが、私はそれをやる方法がわからないので、実際にデータバインディングを使っているかどうか分かりません。あなたの助けのための

感謝:)あなたがそれを行うことができます

答えて

2

一つの方法は、あなたのラベルのTagプロパティを設定している:

l.Tag = liste[i]; 

はその後、あなたが戻って購読方法でユーザーを取得することができます

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

あなたの友人は正しいです:データバインディングははるかに良い方法です。実際、ほとんどの場合、自動的に生成されたコード以外のコードビハインドファイルにはコードを入れないでください。あなたのお気に入りの検索エンジンでMVVMを探してみてください。

+0

ありがとう私はMVVMを探します:) –

関連する問題