c# - winforms 数据绑定(bind)仅适用于开发机器

标签 c# .net winforms data-binding versioning

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

相关文章:

c# - 在 XPath 表达式中声明命名空间

vb.net - 如何在 vb.net 中使用 TextRenderer DrawText 换行长字

c# - 无法使用适用于 .NET 的 EMDK

c# - 为什么下面的电话是模棱两可的?

c# - 不可点击的上下文菜单标题

winforms - 在 Winforms 应用程序中使用 "hyperlink"效果

c# - 使用 EPPLUS 缓慢加载 .CSV 文件

c# - Windows 8 空白应用 + DEP0700 错误

c# - 在 .NET 中如何检查事件是否已被订阅?

c# - 异步任务超时