Erste, faire Warnung: Ich bin ein kompletter Neuling mit C# und WPF.Wie ermittle ich in einer Combobox den markierten Artikel (nicht ausgewählten Artikel)?
Ich habe eine Combobox (editierbar, durchsuchbar) und ich möchte in der Lage sein, die Delete-Taste abzufangen und das aktuell markierte Objekt aus der Liste zu entfernen. Das gesuchte Verhalten ist wie das von MS Outlook bei der Eingabe von E-Mail-Adressen. Wenn Sie ein paar Zeichen eingeben, wird eine Dropdown-Liste mit möglichen Übereinstimmungen angezeigt. Wenn Sie mit den Pfeiltasten zu einem dieser Punkte wechseln und auf Löschen klicken, wird dieser Eintrag endgültig entfernt. Ich möchte das mit einem Eintrag in der Combobox machen.
Hier ist die XAML (vereinfacht):
<ComboBox x:Name="Directory"
KeyUp="Directory_KeyUp"
IsTextSearchEnabled="True"
IsEditable="True"
Text="{Binding Path=CurrentDirectory, Mode=TwoWay}"
ItemsSource="{Binding Source={x:Static self:Properties.Settings.Default},
Path=DirectoryList, Mode=TwoWay}" />
Der Handler ist:
private void Directory_KeyUp(object sender, KeyEventArgs e)
{
ComboBox box = sender as ComboBox;
if (box.IsDropDownOpen && (e.Key == Key.Delete))
{
TrimCombobox("DirectoryList", box.HighlightedItem); // won't compile!
}
}
Wenn das Debugger verwenden, kann ich sehen, box.HighlightedItem
den Wert ich will, aber wenn ich versuche, und setzen in diesem Code, schlägt es mit kompilieren:
System.Windows.Controls.ComboBox' does not contain a definition for 'HighlightedItem'...
Also: Wie kann ich auf diesen Wert zugreifen? Beachten Sie, dass der Artikel nicht ausgewählt wurde. Es wird nur hervorgehoben, wenn die Maus darüber schwebt.
Danke für Ihre Hilfe.
Hier ist ein Screenshot, der das Debugger-Display zeigt. Ich schwebte über „Box“, und wenn die einzeilige Zusammenfassung angezeigt wurde, ich schwebte dann über das + Zeichen auf dieses Bild zu erweitern:
alt text http://www.freeimagehosting.net/uploads/2cff35d340.gif
Was genau Sie meinen zu tun, wenn Sie sagen, Sie box.HighlightedItem im Debugger sehen kann? Ist es in einem Uhrenfenster? Es gibt keine öffentliche HighlightedItem-Eigenschaft in ComboBox. –
Ich habe ein Bild am Ende meines Beitrags hinzugefügt. –