freiberuflicher Software Entwickler C#, vb.Net, vba, UWP, WPF, WinForms, SQL Server, Access, Excel, ASP.Net Core MVC Telefon: 07022/9319004   Kontakt
#

WPF: Settings Properties zur Laufzeit erstellen

 

 

Ich möchte in meiner WPF Anwendung Daten in den Settings speichern.

Die Settings sollen zur Laufzeit erscheinen.

Allerdings kommt eine Fehlermeldung, wenn man die  Daten letztendlich in die Settings speicher.

 

Folgender C# Code wird üblicherweise empfohlen um Settings zu speichern.

Properties.Settings.Default["Test_String_Setting"] = "Hallo";

 

Fehlermeldung

System.NullReferenceException occurred

  HResult=0x80004003

  Message=Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.

  Source=<Cannot evaluate the exception source>

 

 

 

Lösung: man kann den Wert in die DefaultValue schreiben.

Dann muss man diesen aber auch wieder abfragen.

Properties.Settings.Default.Properties["Test_String_Setting"].DefaultValue  = "Hallo";

 

 

 

Kompletter C# Code in WPF

Dabei wird ein Settingswert zur Laufzeit angefügt und in die Anwendungs-Settings angefügt

private void save_Settings()

        {

            //----------< save_Settings() >----------

            //System.Configuration

 

            //< Setting erstellen >

           

            SettingsProperty prop = new System.Configuration.SettingsProperty("Test_String_Setting");

            prop.PropertyType = typeof(string);           

            Properties.Settings.Default.Properties.Add(prop);

           

            Properties.Settings.Default.Save();

//*ok

            Properties.Settings.Default.Properties["Test_String_Setting"].DefaultValue  = "Hallo";

 

//*fehler

            //Properties.Settings.Default["Test_String_Setting"] = "Hallo";

            //</ Setting erstellen >

 

            //< Settings speichern >

            Properties.Settings.Default.Save();

            //</ Settings speichern >

 

 

           

 

            //----------</ save_Settings() >----------

        }

 

        private void read_Settings()

        {

            //----------< save_Settings() >----------

            //System.Configuration

 

            //< Setting erstellen >

            if (Properties.Settings.Default.Properties["Test_String_Setting"] != null)

            {

                string sTest = Properties.Settings.Default.Properties["Test_String_Setting"].DefaultValue.ToString() ;

                MessageBox.Show(sTest.ToString());

            }

            //</ Setting erstellen >

 

            //< Settings speichern >

            Properties.Settings.Default.Save();

            //</ Settings speichern >

 

            //----------</ save_Settings() >----------

        }

 
 

Mobile
»
Fehler durch Caliburn Micro
»
WPF: Referenz zu System.Windows.Interactivity ist fehlerhaft oder fehlt
»
WPF: Settings zur Laufzeit erstellen und abfragen
»
WPF Error: An error occurred while signing
»
WPF Registry. DeleteSubKey: System.UnautohorizedAccessException
»
WPF, Error: UserControl.Name nicht mit Bindestrich

.

Jobs, Projekte, Angebote für Freiberufler, Selbstständig an Raimund.Popp@Microsoft-Programmierer.de