2 Stimmen

Programmatisch das ausgewählte Element in einem WPF-ComboBox setzen

Ich habe eine Dropdown-Liste, die mit einem Enum verbunden ist, das den folgenden Code verwendet:

cmb.ItemsSource = Enum.GetValues(typeof(DATABASE_TYPES)).Cast();

wo DATABASE_TYPES ist:

public enum DATABASE_TYPES
        {
            JDataStore, Access, SQLServer, H2, PostGresSQL, MySQL
        };

Ich habe einige XML, das einem der Enum-Werte entspricht:

Ich versuche, das ausgewählte Element der Dropdown-Liste programmgesteuert auf den Standardwert aus dem XML festzulegen.

Ich habe versucht:

cmb.SelectedItem = propertyNode.Attributes["default"].Value;

aber das funktioniert nicht.

Kann mir bitte jemand raten?

0 Stimmen

Sie möchten vielleicht meine Antwort hier stackoverflow.com/questions/9242345/show-enum-in-a-combobox/‌​… sehen, die es Ihnen ermöglicht, den im Dropdown-Menü angezeigten Text zu lokalisieren.

2voto

Botz3000 Punkte 38010

Sie müssen den String in eine Enum-Instanz konvertieren:

cmb.SelectedItem = (DATABASE_TYPES)Enum.Parse(typeof(DATABASE_TYPES), propertyNode.Attributes["default"].Value);

0 Stimmen

Ausgezeichnet. Ich habe bisher nicht viel mit enums gearbeitet. Sieht so aus, als müsste ich mich damit beschäftigen. Danke! Werde die Antwort markieren, sobald ich kann.

0voto

ionden Punkte 12396

Sie könnten auch eine Liste von Zeichenfolgen aus dem enum bekommen und Ihr Code funktioniert so, wie er ist

cmb.ItemsSource = Enum.GetNames(typeof(DATABASE_TYPES));

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X