gpt4 book ai didi

c# - 数据绑定(bind)到嵌套属性 - 无法绑定(bind)属性或列 (Winforms)

转载 作者:太空宇宙 更新时间:2023-11-03 21:16:37 25 4
gpt4 key购买 nike

我们正在运行一个使用 Windows 窗体的 .NET 4.0 应用程序。该应用程序对两种不同类型的对象使用单一表单。

namespace NetIssue
{
public partial class Form1 : Form
{
B myObj;
public Form1()
{
InitializeComponent();

myObj = new B();
}

private void Form1_Load(object sender, EventArgs e)
{
textBox1.DataBindings.Add(new Binding("Text", myObj, "c.Message"));
}
}

public class Comment {
public int ID { get; set; }
public string Message { get; set; }

public Comment(string msg)
{
Message = msg;
}
}

public class A {
string MyName = "";
}

public class B : A {
public Comment c { get; set; }

public B()
{
c = new Comment("test");
}
}
}

当上面的绑定(bind)在 .NET 4.0 中运行时,我们得到错误

An error occured: Cannot bind to the property or column Message on the DataSource. Parameter name: dataMember

但是,如果我们安装 .NET 4.5,这个错误就会消失。

这是 .NET 4.0 的限制、.NET 4.0 中的错误,还是其他原因?

最佳答案

您可以使用以下任一选项:

B myObj = new B();
textBox1.DataBindings.Add(new Binding("Text", ((B)myObj).c, "Message"));

或者

var bs = new BindingSource(myObj, null);
textBox1.DataBindings.Add("Text", bs, "c.Message");

或者

textBox1.DataBindings.Add("Text", new B[] { myObj }, "c.Message");

关于c# - 数据绑定(bind)到嵌套属性 - 无法绑定(bind)属性或列 (Winforms),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33789575/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com