Laden...

Combobox selected Value

Erstellt von Taladan vor 11 Jahren Letzter Beitrag vor 11 Jahren 807 Views
Taladan Themenstarter:in
582 Beiträge seit 2008
vor 11 Jahren
Combobox selected Value

Hallo,

ich verzweifle gerade an der simplen aufgabe, eine Combobox zu binden. Ziel soll es sein, die Liste AllDSN (eine List<string>) als auswahl und die Eigenschaft SelectedDSN als Vorauswahl zu nutzen.


/// <summary>
        /// Stellt eine liste aller bekannten DSN auf dem Rechner bereit.
        /// </summary>
        public List<string> AllDSN
        {
            get
            {
                List<string> list = new List<string>();
                list.AddRange(EnumDsn(Registry.CurrentUser));
                list.AddRange(EnumDsn(Registry.LocalMachine));
                return list;
            }
        }

        private string _SelectedDSN;
        /// <summary>
        /// Stellt die selektierte DSN bereit.
        /// </summary>
        public string SelectedDSN
        {
            get { return _SelectedDSN; }
            set { 
                _SelectedDSN = value; 
                NotifyPropertyChanged("SelectedDSN");
            }
        }


<ComboBox x:Name="cbDSN" Margin="2" Grid.Column="1" Grid.ColumnSpan="3" 
                  SelectedItem="{Binding Path=SelectedDSN, Mode=Default}"
                  ItemsSource="{Binding Path=AllDSN, Mode=Default}" 
                  IsSynchronizedWithCurrentItem="True" PresentationTraceSources.TraceLevel="High" />

Wo liegt mein Fehler?

Gruß dat Tala

3.430 Beiträge seit 2007
vor 11 Jahren

Hallo Taladan,

das Property für den SelectedDSN kannst du dir sparen.
Nimm einfach eine ObservableCollection anstatt der List, dann kannst du dir über die CollectionViewSource das CurrentItem rausholen.

Zudem würde ich die Daten nicht im Getter von den AllDSN holen. Besser ist wenn du das einmal machst und die Daten dann der Liste zuweist.
Natürlich musst du dann auch das PropertyChanged-Event noch auslesen damit die ComboBox mitbekommt dass sich was geändert hat

Grüße
Michael

Taladan Themenstarter:in
582 Beiträge seit 2008
vor 11 Jahren

Danke Funktioniert nun. Finde ich zwar umständlicher. aber läuft.

Gruß dat Tala