Ich versuche, einen (sehr) einfache Datenbindung Test zu machen, aber es wie erwartet funktioniert nicht ... sagen, ich habe die folgenden Klassen:Einfacher Databinding
// this class represents some kind of data producer
public class DataSourceClass
{
public string Data { get; set; }
public DataSourceClass()
{ }
}
//this form holds the TextBox control as the Data consumer
public partial class DatabindingTestForm : Form
{
public DataSourceClass ds { get; set; }
public DatabindingTestForm()
{
InitializeComponent();
ds = new DataSourceClass();
textBox.DataBindings.Add("Text", ds, "Data");
}
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
if (checkBox.Checked)
ds.Data = "CHECKED";
else
ds.Data = "NOT CHECKED";
}
}
ich nicht hinzugefügt habe der Designer-Code, aber der dort, und das Formular enthält ein TextBox-Objekt und ein CheckBox-Objekt. Wie Sie verstehen, versuche ich, die Textbox-Text-Eigenschaft zu ändern, während der Benutzer die CheckBox abhakt. Dieser Code aktualisiert jedoch nicht die Eigenschaft TextBox Text. Kann mir bitte jemand erklären, was ich vermisse?
Ich habe eine Füllung, die mir fehlt die Hauptidee ... Warum muss ich Datenbindung verwenden, wenn ich ein Ereignis hinzufügen muss? Ich könnte nur das Ereignis verwenden (keine ControlBindingsCollection notwendig ...) –
Für ein Beispiel so einfach, Sie könnten nur ein Ereignis haben, das das Textfeld direkt aktualisiert. In einer realen Anwendung möchten Sie jedoch das Datenmodell (Ihre 'DataSourceClass') von der Benutzeroberfläche (dem Textfeld) getrennt halten. Der Zweck der Datenbindung besteht darin, zwischen dem Modell und der Benutzeroberfläche zu sitzen und Daten zwischen ihnen auszutauschen, ohne dass sie sich gegenseitig bewusst machen müssen. –