我觉得这是一个如此基本的问题,但我花了 2 天时间试图让它工作但没有成功。感谢您的时间。
问题定义
- Visual Studio Express 2012 - Visual C# Windows 窗体项目
- 类和成员
- 我的表格 (
Form
)- 我的列表框 -
ListBox
- 我的列表框 -
- 我的数据元素
- 名 -
string
- 姓 -
string
- 名 -
- 我的数据管理器
- 我的数据列表 -
List<MyDataElement>
- 我的数据列表 -
- 我的表格 (
使用 GUI,我如何绑定myListBox
到myDataList
?更具体地说,我如何进行实例化MyDataManager
以便myListBox
填充列表的值?
已采取的步骤
我可以毫无困难地创建数据源,但我无法让 ListBox 显示基础列表的内容。我努力了:
- 将 ListBox 绑定到独立
MyDataManager
对象 - 创建一个
MyForm
类型的成员MyDataManager
并将 ListBox 绑定到该成员
我也无法工作。我也尝试更改 DisplayMember 属性无济于事。
顺便说一句,我可以通过myListBox.DataSource = myDM.myDataList
在 main 方法中手动设置 DataSource (例如, MyForm
.
示例代码
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();
// ...
我也试过颠倒这个顺序。