Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用VS2012 GUI将列表框绑定到列表<;T>;_C#_Visual Studio 2012 - Fatal编程技术网

C# 使用VS2012 GUI将列表框绑定到列表<;T>;

C# 使用VS2012 GUI将列表框绑定到列表<;T>;,c#,visual-studio-2012,C#,Visual Studio 2012,我觉得这是一个非常基本的问题,但我花了两天时间试图让它工作,但没有成功。谢谢你抽出时间 问题定义 Visual Studio Express 2012-Visual C#Windows窗体项目 班级和成员 我的表单(表单) myListBox-ListBox MyDataElement 名字-字符串 lastName-字符串 MyDataManager myDataList-列表 使用GUI,如何将myListBox绑定到myDataList?更具体地说,我如何实例化

我觉得这是一个非常基本的问题,但我花了两天时间试图让它工作,但没有成功。谢谢你抽出时间

问题定义
  • Visual Studio Express 2012-Visual C#Windows窗体项目
  • 班级和成员
    • 我的表单(
      表单
      • myListBox-
        ListBox
    • MyDataElement
      • 名字-
        字符串
      • lastName-
        字符串
    • MyDataManager
      • myDataList-
        列表
使用GUI,如何将
myListBox
绑定到
myDataList
?更具体地说,我如何实例化
MyDataManager
,以便用列表的值填充
myListBox

已经采取的步骤 我可以毫不费力地创建数据源,但我无法让ListBox显示底层列表的内容。我试过:

  • 将列表框绑定到独立的
    MyDataManager
    对象
  • MyForm
    中创建类型为
    MyDataManager
    的成员,并将列表框绑定到该成员
我两个都不能工作。我还尝试更改DisplayMember属性,但没有成功

顺便说一句,我可以通过在
MyForm
的主要方法中手动设置数据源(例如,
myListBox.DataSource=myDM.myDataList
)使其正常工作,但为了将来的参考和我自己的启发,我想学习如何通过GUI实现这一点(如果可能的话)

示例代码
我也尝试过颠倒顺序。

您需要使用资源将视图的DataContext与MyDataManager绑定(在您的情况下,MyDataManager被视为ViewModel),请参见以下内容。VS GUI将能够找到MyDataManager类成员。希望能有帮助

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" });
    }
}
// ...
myDM = new myDataManager();
InitializeComponents();
// ...