簡體   English   中英

將WPF C#WPF數據綁定到Codebehind中的標簽

[英]Databinding WPF C# WPF to labels in Codebehind

我有一個帶有一些屬性的帳戶列表,這些屬性保存在數據庫中。

在我的窗口中,我將顯示“帳戶”列表中的用戶名

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
}

因此,現在我在創建的每個標簽上都具有MouseButton事件,但是當我單擊一個用戶名時,我背后的代碼只能獲取標簽的內容,因此我不知道它是哪個帳戶。 當然,我可以循環檢查liste[i].Username = this.content但是我的問題是我有更多帳戶,例如我有2個帳戶,一個facebook和一個google,但它們具有相同的用戶名,我怎么知道現在在哪個帳戶背后的代碼中,我點擊的位置

一位朋友對我說,我應該嘗試使用數據綁定,但是我是編碼的新手,所以我真的不知道該怎么做,或者它是否適用於數據綁定。

謝謝你的幫助 :)

一種方法是設置標簽的Tag屬性:

l.Tag = liste[i];

然后,您可以使您的用戶恢復為訂閱的方法:

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

但是您的朋友是對的:數據綁定是一種更好的方法。 實際上,在大多數情況下,文件背后的代碼中不應包含任何代碼(自動生成的代碼除外)。 嘗試在您喜歡的搜索引擎上查找MVVM。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM