Ich bin mir nicht sicher, was Sie durch den „Namen der Auswahl“ meine ich, so dass ich nehme an, Sie halten den Text erhalten möchten, die in der Combo angezeigt, der das ausgewählte Element darstellt .
Sobald Sie die Combo selbst in der Hand haben:
private void OnSelectedIndexChanged(object sender, RoutedEventArgs e)
{
var combo = (ComboBoxEdit)sender;
(...)
}
haben Sie mehrere Möglichkeiten. Am zuverlässigsten wäre (meiner Meinung nach) die Eigenschaft combo.DisplayText
, bei der es sich um eine schreibgeschützte Eigenschaft handelt, die den tatsächlichen Text enthält, der in der Combo angezeigt werden sollte (unter Berücksichtigung der DisplayMember
Eigenschaft, DisplayTextConverter
Eigenschaft und CustomDisplayText
Ereignis).
Eine andere Option (in Ihrem speziellen Fall) wäre . Beachten Sie jedoch, dass combo.SelectedItem
das tatsächlich ausgewählte Element und nicht seine Textdarstellung zurückgibt. Das obige ist in Ordnung, solange die Artikel vom Typ string
sind. Sollten sie nicht sein, erhalten Sie eine InvalidCastException
. Es ist auch möglich, dass in diesem Fall , was Sie erhalten, möglicherweise nicht das ist, was Sie sehen (wie im vorherigen Absatz erwähnt gibt es mehrere Möglichkeiten, den angezeigten Text zu ändern).
Noch eine andere Option combo.Text
, die DisplayMember
berücksichtigt, aber nicht DisplayTextConverter
noch CustomDisplayText
.
EDIT
Es stellt sich heraus, dass SelectedIndexChanged
zum Zeitpunkt angehoben wird, wird DisplayText
Eigenschaft noch nicht das neu ausgewählte Element entsprechend aktualisiert (was nicht besonders überraschend ist). Um damit umzugehen, sollten Sie den Abruf des Werts DisplayText
"verschieben". Ich würde persönlich mit etwas in diese Richtung gehen (mit einem Dispatcher
mit dem Combo-zugeordnet ist):
private void OnSelectedIndexChanged(object sender, RoutedEventArgs e)
{
var combo = (ComboBoxEdit)sender;
combo.Dispatcher.BeginInvoke(new Action(() =>
{
var text = combo.DisplayText;
(...)
}));
}
Sie denken an 'System.Windows.Forms.ComboBox'. OP verwendet 'ComboBoxEdit' von DevExpress WPF-Steuerelementen. – Grx70