Pytanie w sprawie .net, c#, versioning, data-binding, winforms – wiązanie danych winforms działa tylko na maszynie programistycznej

2

Mam na celu framework 4.0 i działa to dobrze na komputerze programistycznym, widzę przy uruchomieniu formularza z polem tekstowym wyświetlającym w nim powiązaną wiadomość. Ale kiedy wdrażam plik wykonywalny na innym komputerze, nie będzie działać twierdząc, że „nie można powiązać z właściwością lub kolumną Uwaga na DataSource”. Dziwną rzeczą jest to, że działa dobrze na każdej maszynie, jeśli kompiluję ją w środowisku 3.5. Ktoś mógłby wyjaśnić to dziwne zachowanie? Co może się różnić między środowiskiem programistycznym a komputerami klienckimi?

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

Twoja odpowiedź

1   odpowiedź
2

Przełamująca zmiana w 4.0. Widzieć.Net 4.0 prosty problem wiążący

Obejście problemu polega na użyciu 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");    
}

Powiązane pytania