c# .net wpf listbox

c# - wpf combobox



WPF ListBox Button Elemento seleccionado (2)

Cuando se hace clic en un botón, establece e.Handled en verdadero, lo que hace que el recorrido del evento enrutado se detenga.

Puede agregar un controlador al botón que vuelve a generar el evento enrutado, o busca el antecesor visual de tipo ListBoxItem y establece su propiedad IsSelected en verdadero.

EDITAR

Un método de extensión como este:

public static DependencyObject FindVisualAncestor(this DependencyObject wpfObject, Predicate<DependencyObject> condition) { while (wpfObject != null) { if (condition(wpfObject)) { return wpfObject; } wpfObject = VisualTreeHelper.GetParent(wpfObject); } return null; }

Uso:

myButton.FindVisualAncestor((o) => o.GetType() == typeof(ListBoxItem))

Tengo un cuadro de lista con algunos bloques de texto y un botón: en el código del botón subyace un método que pasa el elemento de cuadro de lista actualmente seleccionado, esto funciona muy bien. El problema es que cuando selecciono un elemento y luego hago clic en el botón de otro elemento, no actualiza la propiedad "SelectedItem". ¿Hay alguna forma de Xaml o C # de forzar un clic de botón para seleccionar el ListBoxItem principal?

Xaml

<DataTemplate> <Grid> <Button x:Name="myButton" Click="myButton_Click" Height="30" Width="30"> <Image Source="Resources/Image.png" /> </Button> <TextBlock Text="{Binding DataField}"></TextBlock> </Grid> </DataTemplate>


var curItem = ((ListBoxItem)myListBox.ContainerFromElement((Button)sender)).Content;