Pergunta sobre .net, c#, versioning, data-binding, winforms – winforms ligação de dados funciona apenas na máquina de desenvolvimento

2

Eu estou direcionando o framework 4.0 e isso funciona bem na máquina de desenvolvimento, eu posso ver na inicialização do formulário com a caixa de texto exibindo mensagem vinculada nele. Mas quando eu implantar o executável em qualquer outra máquina, não funcionará alegando que "não pode ligar-se à propriedade ou coluna Nota no DataSource". O mais estranho é que ele funciona bem em qualquer máquina se eu compilar visando o framework 3.5. Alguém poderia explicar esse comportamento estranho? O que pode ser diferente entre o ambiente de desenvolvimento e as máquinas clientes?

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; }
    }  
}

Sua resposta

1   a resposta
2

Quebrando a mudança em 4.0. VejoProblema de ligação simples .net 4.0

A solução é usar um 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");    
}

Perguntas relacionadas