Verständnisfrage zum Objekt Vergleich



  • Hallo Leute ...

    Folgendes verstehe ich nicht wirklich: Warum Selektiert die Combobox hierbei den richtigen Wert ...

    FileInfo debug = KatalogComboBox.SelectedItem as FileInfo;
    
    foreach (FileInfo item in KatalogComboBox.ItemsSource)
                {
                    if (item.FullName == debug.FullName)
                    {
                        KatalogComboBox.SelectedItem = item;
                        return;
                    }
                }
    

    aber hier nicht ...

    FileInfo debug = KatalogComboBox.SelectedItem as FileInfo;
    //KatalogCombo ItemSource (ObservableCollection<FileInfo>) neu einlesen
    KatalogComboBox.SelectedItem = debug;
    

    Würde mir jemand den Grund dafür nennen ?



  • shaun1981 schrieb:

    FileInfo debug = KatalogComboBox.SelectedItem as FileInfo;
    //KatalogCombo ItemSource (ObservableCollection<FileInfo>) neu einlesen
    KatalogComboBox.SelectedItem = debug;
    

    Würde mir jemand den Grund dafür nennen ?

    Ja. Das liegt daran, dass die ComboBox kein SelectedIndex/SelectedValue-Changed Event auslöst, wenn man das momentan ausgewählte Element erneut zuweist. Schließlich hat sich der Index auch nicht geändert 😉



  • Hm ... wieder was gelernt.

    Also komme ich nicht drum herum die ComboBox mit dem ersten Codeschnipsel zu erweitern ?!



  • shaun1981 schrieb:

    Hm ... wieder was gelernt.

    Also komme ich nicht drum herum die ComboBox mit dem ersten Codeschnipsel zu erweitern ?!

    Wie wär's damit: Inhalt der SelectedIndex_Changed-Methode auslagern in neue Methode "DisplayItem". Und dann diese Methode aufrufen, wenn du die Darstellung aktualisieren willst?


Anmelden zum Antworten