Hallöchen,
ich habe folgende Klasse:
Spoiler anzeigen
Die die ganzen Werte da sind per Binding an Textboxen gebunden und nun würde ich gerne die Sprache auswählbar machen.
Ich hole die Sprachen aus einer MSSQL Tabelle in eine DataTable per TableAdapter:
Ich möchte nun in einer ComboBox per Binding die Sprache auswählbar machen und den Wert der Sprache also "kSprache" als Sprache in meiner Settings Klasse speichern.
Natürlich will ich das dann auch wieder laden aber irgendwie weiß ich nicht wie.
Klar kann ich die ComboBox an die DataTable binden aber wie speicher ich dann den Wert in die Settingsklasse ohne viel Code? Und wie lade ich das am besten wieder?
Stehe da grad auf dem Schlauch. Meine Textboxen wenn die sich ändern und ich auf meinen Save Button drücke werden ja in der xml für die Settings Klasse gespeichert.
Hoffe einer versteht was ich da vorhabe.
ich habe folgende Klasse:
C#-Quellcode
- public class Settings : INotifyPropertyChanged
- {
- private string _datasource;
- private string _database;
- private string _username;
- private string _password;
- private string _status;
- private int _sprache;
- public string DataSource
- {
- get { return _datasource; }
- set
- {
- if (Equals(value, _datasource)) return;
- _datasource = value;
- OnPropertyChanged();
- }
- }
- public string Database
- {
- get { return _database; }
- set
- {
- if (Equals(value, _database)) return;
- _database = value;
- OnPropertyChanged();
- }
- }
- public string Username
- {
- get { return _username; }
- set
- {
- if (Equals(value, _username)) return;
- _username = value;
- OnPropertyChanged();
- }
- }
- public string Password
- {
- get { return _password; }
- set
- {
- if (Equals(value, _password)) return;
- _password = value;
- OnPropertyChanged();
- }
- }
- public int Sprache
- {
- get { return _sprache; }
- set
- {
- if (Equals(value, _sprache)) return;
- _sprache = value;
- OnPropertyChanged();
- }
- }
- [XmlIgnore]
- public string Status
- {
- get { return _status; }
- set
- {
- if (Equals(value, _status)) return;
- _status = value;
- OnPropertyChanged();
- }
- }
- public string GetConnectionString()
- {
- return $"Data Source={this.DataSource};MultipleActiveResultSets=true;User ID={this.Username};Password={this.Password}";
- }
- public Settings()
- {
- this.Status = $"[{DateTime.Now.ToShortTimeString()}]: Settings loaded.";
- }
- public void SaveToXML()
- {
- XmlSerializer xs = new XmlSerializer(typeof(Settings));
- TextWriter txtWriter = new StreamWriter("config.xml");
- xs.Serialize(txtWriter, this);
- txtWriter.Close();
- this.Status = $"[{DateTime.Now.ToShortTimeString()}]: Settings saved.";
- }
- public static Settings LoadFromXML()
- {
- if (!File.Exists("config.xml")) return new Settings();
- XmlSerializer xs = new XmlSerializer(typeof(Settings));
- using (Stream reader = new FileStream("config.xml", FileMode.Open))
- {
- return (Settings)xs.Deserialize(reader);
- }
- }
- public event PropertyChangedEventHandler PropertyChanged;
- //[NotifyPropertyChangedInvocator]
- protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
- {
- var handler = PropertyChanged;
- if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
- }
- }
Die die ganzen Werte da sind per Binding an Textboxen gebunden und nun würde ich gerne die Sprache auswählbar machen.
Ich hole die Sprachen aus einer MSSQL Tabelle in eine DataTable per TableAdapter:
Ich möchte nun in einer ComboBox per Binding die Sprache auswählbar machen und den Wert der Sprache also "kSprache" als Sprache in meiner Settings Klasse speichern.
Natürlich will ich das dann auch wieder laden aber irgendwie weiß ich nicht wie.
Klar kann ich die ComboBox an die DataTable binden aber wie speicher ich dann den Wert in die Settingsklasse ohne viel Code? Und wie lade ich das am besten wieder?
Stehe da grad auf dem Schlauch. Meine Textboxen wenn die sich ändern und ich auf meinen Save Button drücke werden ja in der xml für die Settings Klasse gespeichert.
Hoffe einer versteht was ich da vorhabe.
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „EaranMaleasi“ ()