Laden...

Forenbeiträge von Ammojack Ingesamt 5 Beiträge

06.12.2022 - 20:17 Uhr

Anhand der Variablenbezeichnung drängt sich mir der Gedanke auf, dass wir an ähnlichen Projekten arbeiten ?!?. Ich mach grad was für Darts.

Ja, da hast du recht. Es wird ein Ligaprogramm. Gut kombiniert 😉

06.12.2022 - 11:26 Uhr

Danke für die Hilfe 🙂
Das mit der Using Anweisung schau ich mir nochmal an, ist ein guter Tip.
Das der Konstruktor aufgerufen wird und die Standardwerte gesetzt werden hatte ich im Debugger gesehen. Aber warum er das Verhalten an den Tag legt hatte ich nicht verstanden. Denn eigentlich ist das doch eine Zuweisung, oder nicht?


spielsettings = (Spielsettings)xml.Deserialize(fs);

Weise der spielsettings den Inhalt aus der Textdatei zu, und nicht addiere.

Aber nu gut. Muss ich mir wohl eine andere Lösung auf Deinen Rat hin überlegen müssen 🙁

06.12.2022 - 09:49 Uhr

Hallo liebe Gemeinde 😉
Die Klasse Spielsettings hab ich mittels XmlSerializer in eine Datei serialisiert. Nun möchte ich die Spielsettings wieder deserialisieren, und lese in Zeile 10 die Datei aus. Jetzt hab ich somit aber nochmal so viele Einträge in meiner CmbBestOfLegs Collection drin. Es scheint so, als würden die Spielsettings beim Auslesen nicht überschrieben werden, sondern addiert. Merkwürdiger weise würde es mit dem JasonSerializer aus Zeile 11 gehen. Im Konstruktor sollen Standardwerte gesetzt werden, falls eine neue Datei angelegt werden muss. Da mir das XML Format aber lieber ist als Datei, wäre ich euch dankbar für einen Tip bei meinem Problemchen.
Vielen Danke schonmal im voraus


        public static Spielsettings Load(string dateipfad, string dateiname)
        {
            Spielsettings spielsettings = new Spielsettings();
          
            XmlSerializer xml = new XmlSerializer(typeof(Spielsettings));
            FileStream fs = new FileStream(dateiname, FileMode.Open);

            try
            {
                spielsettings = (Spielsettings)xml.Deserialize(fs);
                //spielsettings = (Spielsettings)JsonSerializer.Deserialize(fs, typeof(Spielsettings));
            }
            catch (Exception ex)
            {
                
            }
            fs.Close();
            fs.Dispose();
            return spielsettings;
        }


    public class Spielsettings : ObservableObject
    {
        //public event EventHandler Auswechselspieler_Change;
        
        public Spielsettings()
        {
            CmbBestOfLegs = new ObservableCollection<string>
            {
                "3",
                "5",
                "7",
                "9"
            };
        }

        public ObservableCollection<string> CmbBestOfLegs { get; private set; }

        private int bestOfLegs;
        public int BestOfLegs
        {
            get 
            { 
                return bestOfLegs; 
            }
            set 
            { 
                bestOfLegs = value; 
            }

    }

18.04.2022 - 21:31 Uhr

Das hat geklappt, super. Vielen Dank 🙂

18.04.2022 - 14:53 Uhr

Hallo erstmal.

Vielleicht kann mir ja jemand mal einen Tip geben bei meinem Problem.
Wenn ich über die Texteingabe ein Eintrag in der Combobox erstelle, soll dieser dort angezeigt werden.
Die Eingaben werden in der Liste eingetragen. Löse ich die PropertyChanchedEventArgs aus, wird auch auf den get Zweig zugegriffen, und die Liste mit den Einträgen übermittelt, aber sie werden nicht in der Combobox sichtbar.

Wenn ich die Combobox manuell über


combobox.Items.Refresh();

auslöse, sind alle Einträge vorhanden.

Was mache ich falsch?

Danke schonmal im voraus.


        <ComboBox HorizontalAlignment="Left" Margin="136,96,0,0" VerticalAlignment="Top" Width="120" ItemsSource="{Binding ComboboxItems}" IsEditable="True"/>



    public class ViewDaten : INotifyPropertyChanged
    {
        public event PropertyChangedEventHandler PropertyChanged;
        string textboxeingabe;

        public ViewDaten()
        {
            comboboxitems = new List<string>();
            comboboxitems.Add("Test");
        }

        protected void OnProperty(PropertyChangedEventArgs e)
        {
            PropertyChanged(this, e);
        }
        
        List<string> comboboxitems = new List<string>();
        public List<string> ComboboxItems 
        {
            get { return comboboxitems; }
            set { comboboxitems = value; }
        }

        public string Textboxeingabe 
        { 
            get 
            { 
                return textboxeingabe; 
            } 
            set 
            {
                if (textboxeingabe!=value)
                {
                    comboboxitems.Add(value);
                    OnProperty(new PropertyChangedEventArgs("ComboboxItems"));
                }
            } 
        }
    }