我的目标是框架4.0,这在开发机器上工作正常,我可以在启动时看到表单,文本框中显示了绑定消息。但是,当我在任何其他计算机上部署可执行文件时,它将无法声称“无法绑定到属性或列注意数据源”。非常奇怪的是,如果我编译目标3.5框架,它在任何机器上运行良好。有人可以解释这种奇怪的行为吗?开发环境和客户端机器之间可能有什么不同?
namespace Demo
{
public partial class Form1 : Form
{
private readonly SimpleDataContext _dataContext;
public Form1()
{
InitializeComponent();
_dataContext = new SimpleDataContext { Prop = new SimpleProp { Note = "hi!" }};
textBox1.DataBindings.Add("Text", _dataContext, "Prop.Note");
}
}
public class SimpleDataContext
{
public SimpleProp Prop { get; set; }
}
public class SimpleProp
{
public string Note { get; set; }
}
}
答案 0 :(得分:2)
4.0中的突破。见.Net 4.0 simple binding issue
解决方法是使用BindingSource:
public Form1() {
InitializeComponent();
_dataContext = new SimpleDataContext { Prop = new SimpleProp { Note = "hi!" } };
BindingSource bs = new BindingSource(_dataContext, null);
textBox1.DataBindings.Add("Text", bs, "Prop.Note");
}