winforms数据绑定仅适用于开发机器

时间:2012-06-13 21:37:36

标签: c# .net winforms data-binding versioning

我的目标是框架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; }
    }  
}

1 个答案:

答案 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");    
}