Вопрос по .net, versioning, winforms, c#, data-binding – Привязка данных winforms работает только на машине разработки

2

Я нацеливаюсь на фреймворк 4.0, и он отлично работает на компьютере разработчика, при запуске я вижу форму с текстовым полем, в котором отображается сообщение в виде строки. Но когда я разверну исполняемый файл на любом другом компьютере, он не будет работать, утверждая, что "не может связываться со свойством или столбцом Примечание на DataSource". Очень странно то, что он хорошо работает на любой машине, если я скомпилирую для платформы 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   ответ
2

.Net 4.0 простая проблема связывания

Обходной путь должен использовать 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");    
}

Похожие вопросы