0

我觉得这是一个如此基本的问题,但我花了 2 天时间试图让它工作但没有成功。感谢您的时间。

问题定义

  • Visual Studio Express 2012 - Visual C# Windows 窗体项目
  • 类和成员
    • 我的表格 ( Form)
      • 我的列表框 -ListBox
    • 我的数据元素
      • 名 -string
      • 姓 -string
    • 我的数据管理器
      • 我的数据列表 -List<MyDataElement>

使用 GUI,我如何绑定myListBoxmyDataList?更具体地说,我如何进行实例化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();
// ...

我也试过颠倒这个顺序。

4

1 回答 1

0

您需要使用 Resources 将 View 的 DataContext 与 MyDataManager 绑定(在您的情况下,MyDataManager 被视为 ViewModel),请参阅这些anwsers。VS GUI 将能够找到您的 MyDataManager 类成员。希望能帮助到你

于 2013-01-28T16:05:34.977 回答