Frage an c#, versioning, data-binding, .net, winforms – winforms databinding funktioniert nur auf Entwicklungsmaschinen

2

Ich ziele auf das Framework 4.0 ab und dies funktioniert auf dem Entwicklungscomputer einwandfrei. Beim Start wird das Formular mit dem Textfeld angezeigt, in dem die gebundene Nachricht angezeigt wird. Wenn ich die ausführbare Datei jedoch auf einem anderen Computer bereitstelle, funktioniert es nicht mit der Behauptung, dass "keine Bindung an die Eigenschaft oder die Spaltennotiz in der DataSource möglich ist". Das sehr seltsame ist, dass es auf jedem Computer gut funktioniert, wenn ich das 3.5-Framework kompiliere. Jemand könnte dieses merkwürdige Verhalten erklären? Was kann zwischen Entwicklungsumgebung und Clientcomputern unterschiedlich sein?

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

Deine Antwort

1   die antwort
2

.Net 4.0 einfaches Bindungsproblem

Die Lösung besteht darin, eine BindingSource zu verwenden:

public Form1() {
  InitializeComponent();
  _dataContext = new SimpleDataContext { Prop = new SimpleProp { Note = "hi!" } };
  BindingSource bs = new BindingSource(_dataContext, null);
  textBox1.DataBindings.Add("Text", bs, "Prop.Note");    
}

Verwandte Fragen