【问题标题】:How to get the underlying object bound to a control?如何将底层对象绑定到控件?
【发布时间】:2012-01-22 00:57:36
【问题描述】:

使用 WinForms 和数据绑定。

我有一个包含 BindingSource 组件的表单,并且我已将设计器的 DataSource 属性设置为一个类:

public class MyClass
{
    public string MyString {get;set;}
}

现在,如何从源代码中获取分配给 BindingSource 的 MyClass 对象?

我尝试将 BindingSource 的 DataSource 属性强制转换为 MyClass,但不起作用。

补充说明

我的问题似乎是我从 WinForms 设计器中设置了 DataSource。
然后将 DataSource 设置为 MyClass 类型,而不是实际对象。

那么,是否创建了一个我可以通过代码访问和修改的对象,以便有界对象的值显示在表单的控件上?

谢谢。

【问题讨论】:

    标签: .net winforms data-binding bindingsource


    【解决方案1】:

    要在 WinForms 应用程序中添加对象数据源,请从菜单中选择 Data > Add New Data Source。在数据源配置向导中选择Object 并单击Next。选择您希望用作数据源的类并单击Finish。类的公共属性现在应该出现在“数据源”窗口中。

    然后在您创建该类的实例并将其分配给DataSource 属性之后。例如:

    private void Form1_Load(object sender, EventArgs e)
    {
        MyClass myClass = new MyClass()
        {
            MyString = "aaaa"
        };
    
        myClassBindingSource.DataSource = myClass;
    }
    

    【讨论】:

    • 据我了解,我可以绑定到一个简单的类。
    • 是的,您可以将某些控件绑定到一个类。请阅读以下文章了解更多信息:msdn.microsoft.com/en-us/library/c8aebh9k.aspx
    • 跟进您的更新:它已经以这种方式连接。问题是 DataSource 属性设置为对象的类型,而不是实际对象。
    • 我终于认为我完全理解了你的问题。我又更新了答案。
    • @Stécy - 没有办法做到这一点。但是从代码中填充它有什么问题。你有什么特别的理由要这样做吗?
    猜你喜欢
    • 2023-04-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多