Ich habe eine Winform mit einer sehr grundlegenden Prämisse: Ändern Sie 2 String-Eigenschaften eines Objekts, das in es übergeben wird, dann speichern Sie es auf der Festplatte, wenn das Formular geschlossen wird. Ich versuche, Datenbindung zu verwenden, um die Texteigenschaften von 2 Textfeldern in dem Formular an die 2 Zeichenfolgeneigenschaften des Objekts zu binden.Winforms .Net Einfache Datenbindung funktioniert nicht
Aber es funktioniert nicht. Die Textfelder zeigen niemals die Werte an, die ich den Objekteigenschaften im Konstruktor zuweise. Und wenn ich etwas in die Textfelder eintippe, werden die Objekteigenschaften nicht aktualisiert. Was mache ich falsch?
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace Eds_Viewer
{
public partial class EdsConfigForm : Form
{
public EdsConfigForm(EdsConfig myconfig)
{
InitializeComponent();
EdsConfig = myconfig;
if (EdsConfig.VFPConnectionString == null) //set a default value
{
EdsConfig.VFPConnectionString = "Provider=vfpoledb;Data Source=g:\\eds\\";
}
if (EdsConfig.VFPFileName == null) //set a default value
{
EdsConfig.VFPFileName = "InvoiceDB";
}
this.VFPConnectionStringTextbox.DataBindings.Add("Text", EdsConfig, "VFPConnectionString");
this.VFPFileNameTextbox.DataBindings.Add("Text", EdsConfig, "VFPFileName");
}
EdsConfig EdsConfig;
private void SaveConfigToDisk(EdsConfig myconfig)
{
XmlSerializer x = new XmlSerializer(typeof(EdsConfig));
TextWriter tw = new StreamWriter("EdsConfig.xml");
x.Serialize(tw, myconfig);
tw.Close();
}
private void EdsConfigForm_FormClosing(object sender, FormClosingEventArgs e)
{
this.SaveConfigToDisk(this.EdsConfig);
}
}
}
VFPFileName und VFPConnectionString sind öffentliche Felder. –
Whoops, die BindingSource-Zeile war etwas, mit dem ich spielte ... kein gültiger Teil des Problems. Herausgegeben. –
Nein, ich implementiere INotifyPropertyChanged nicht. Ich werde das überprüfen. –