簡體   English   中英

使用VS2012 GUI將ListBox綁定到列表<T>

[英]Using VS2012 GUI to bind ListBox to List<T>

我覺得這是一個基本的問題,但是我花了2天的時間才能使其成功。 感謝您的時間。

問題定義

  • Visual Studio Express 2012-Visual C#Windows窗體項目
  • 班級和成員
    • MyForm( Form
      • myListBox- ListBox
    • MyDataElement
      • firstName- string
      • lastName- string
    • MyDataManager
      • myDataList- List<MyDataElement>

使用GUI,我怎么可以綁定myListBoxmyDataList 更具體地講,我怎么去實例MyDataManager使myListBox獲取與該列表的值填充?

已經采取的步驟

我可以毫不費力地創建DataSources,但無法獲取ListBox來顯示基礎列表的內容。 我努力了:

  • 將ListBox綁定到獨立的MyDataManager對象
  • MyDataManager類型的MyForm中創建一個成員並將ListBox綁定到該成員

我都不能上班。 我也嘗試將DisplayMember屬性更改為無效。

順便說一句,我可以通過在MyForm的主要方法中手動設置DataSource(例如, myListBox.DataSource = myDM.myDataList )來使其正常工作,但是為了將來參考和我自己的觀點,我很樂意學習如何通過GUI(如果可能的話)。

樣例代碼

public class MyDataElement
{
    public string firstName { get; set; }
    public string lastName { get; set; }

    public override string ToString()
    {
        return firstName + " " + lastName;
    }
}

public class MyDataManager
{
    public List<MyDataElement> myDataList { get; set; }

    // Constructor.
    public MyDataManager()
    {
        myDataList = new List<MyDataElement>();

        // Populate list for testing purposes.
        myDataList.Add(new MyDataElement { firstName = "John", lastName = "Smith" });
        myDataList.Add(new MyDataElement { firstName = "Jane", lastName = "Doe" });
    }
}

MyForm的主要方法中:

// ...
myDM = new myDataManager();
InitializeComponents();
// ...

我也嘗試過反轉此順序。

您需要使用資源將視圖的DataContext與MyDataManager綁定(在您的情況下,將MyDataManager視為ViewModel),請參見這些anwsers VS GUI將能夠找到您的MyDataManager類成員。 希望能幫助到你

暫無
暫無

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

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