Primero, advertencia justa: soy un novato completo con C# y WPF.En un cuadro combinado, ¿cómo determino el elemento resaltado (elemento no seleccionado)?
Tengo un cuadro combinado (editable, con capacidad de búsqueda) y me gustaría poder interceptar la tecla Eliminar y eliminar el elemento actualmente resaltado de la lista. El comportamiento que estoy buscando es como el de MS Outlook al ingresar direcciones de correo electrónico. Cuando da unos pocos caracteres, se muestra una lista desplegable de posibles coincidencias. Si se mueve a uno de estos (con las teclas de flecha) y presiona Eliminar, esa entrada se elimina permanentemente. Quiero hacer eso con una entrada en el cuadro combinado.
Aquí es el XAML (simplificada):
<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}" />
El controlador es:
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!
}
}
Cuando se utiliza el depurador, puedo ver box.HighlightedItem
tiene el valor que quiero, pero cuando intento y poner en ese código, que falla al compilar con:
System.Windows.Controls.ComboBox' does not contain a definition for 'HighlightedItem'...
Entonces, ¿cómo accedo a ese valor? Tenga en cuenta que el artículo tiene no seleccionado. Simplemente se resalta cuando el mouse se cierne sobre él.
Gracias por su ayuda.
Aquí hay una captura de pantalla que muestra la pantalla del depurador. Yo flotaba sobre "caja" y cuando se visualiza el resumen de una línea, entonces se movía sobre el carbón + para expandir a esta imagen:
alt text http://www.freeimagehosting.net/uploads/2cff35d340.gif
¿Qué es exactamente a qué se refiere cuando dice que puede ver box.HighlightedItem en el depurador? ¿Está en una ventana de observación? No hay una propiedad pública HighlightedItem en ComboBox. –
Agregué una foto al final de mi publicación. –