我的目标是框架 4.0,这在开发计算机上运行良好,我可以在启动时看到表单,其中的文本框显示绑定(bind)消息。但是,当我在任何其他计算机上部署可执行文件时,它不会声称“无法绑定(bind)到数据源上的属性或列注释”。非常奇怪的是,如果我针对 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; }
}
}
最佳答案
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");
}
关于c# - winforms 数据绑定(bind)仅适用于开发机器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11023682/