C# WPF foreach

Agyss

Cadet 4th Year
Registriert
Dez. 2011
Beiträge
73
Hallo liebe Community,

bei einem einfachen Programm benötige ich folgende foreach-Schleife:

foreach (ComboBoxItem cbi in Kapitelauswahl.Items)
{
(Hauptfenster.FindName("Auswahl") as ComboBox).Items.Add(cbi.Content);
}

Wieso erhalte ich folgende Fehlermeldung:
"Das Objekt des Typs "System.String" kann nicht in Typ "System.Windows.Controls.ComboBoxItem" umgewandelt werden."?

Die Markierung liegt dabei auf "ComboBoxItem cbi".

Google konnte mir leider nicht helfen und entschuldigt, bin neu in WPF/C#.

Danke für eure Hilfe!
Mfg Agyss
 
Was für Objekte liegen den in Kapitelauswahl.Items? Wenn das eine String-Collection ist, dann ist der Fehler klar.

Dann müsstest du etwas in dieser Richtung schreiben:
Code:
foreach ([COLOR="Red"]string[/COLOR] cbi in Kapitelauswahl.Items)
{
(Hauptfenster.FindName("Auswahl") as ComboBox).Items.Add(cbi);
}
 
Danke für die schnelle Antwort.

Kapitelauswahl ist eine ComboBox und es klappt.

Wenn du mir noch erklären könntest wieso es hier mit ComboBoxItem nicht klappt, hier:

foreach (ComboBoxItem cbi in (Hauptfenster.FindName("Auswahl") as ComboBox).Items)
{
Kapitelauswahl.Items.Add(cbi.Content);
}

jedoch schon, wäre ich dir sehr dankbar.

Mfg
Agyss
 
Zuletzt bearbeitet:
Code:
<ComboBox x:Name="cb" ItemsSource="{Binding Items}">
            <ComboBox.ItemTemplate>
                <DataTemplate>
                    ...
                </DataTemplate>
            </ComboBox.ItemTemplate>
        </ComboBox>

Jedes Objekt in cb.Items ist vom Typ des zugehörigen, gebunden Item.

Code:
ComboBox cb = new ComboBox();
cb.Items.Add( "foo" );
cb.Items.Add( "bar" );

Jedes Objeckt in cb.Items ist ein String.

In beiden Fällen ist nur der Container vom Typ ComboBoxItem.

Deine Frage im letzten Post erübrigt sich, da du nach dem Unterschied zwischen zwei verschiedenen Collections fragst. Ohne weiteren Code bist du der einzige, der dir diese Frage beantworten kann.
 
Zuletzt bearbeitet:
Zurück
Oben