Tengo un ListBox, que está vinculado a un ObservableCollection
.WPF ListBoxItems con DataTemplates - ¿Cómo hago referencia al objeto CLR vinculado a ListBoxItem desde el DataTemplate?
Cada ListBoxItem
se muestra con DataTemplate
. Tengo un botón en mi DataTemplate
, que cuando hace clic, necesita una referencia al miembro del ObservableCollection
para el que es parte de DataTemplate. No puedo usar la propiedad ListBox.SelectedItem
porque el elemento no se selecciona al hacer clic en el botón.
O bien: Necesito averiguar cómo configurar correctamente ListBox.SelectedItem
cuando el mouse se desplaza, o cuando se hace clic en el botón. O necesito encontrar otra forma de obtener una referencia al objeto CLR vinculado al ListBoxItem
al que pertenece el botón. La segunda opción parece más limpia, pero de todos modos es probable que esté bien.
segmento de código simplificado a continuación:
XAML:
<DataTemplate x:Key="postBody">
<Grid>
<TextBlock Text="{Binding Path=author}"/>
<Button Click="DeleteButton_Click">Delete</Button>
</Grid>
</DataTemplate>
<ListBox ItemTemplate="{StaticResource postBody}"/>
C#:
private void DeleteButton_Click(object sender, RoutedEventArgs e)
{
Console.WriteLine("Where mah ListBoxItem?");
}
Esto es perfecto, y también has arreglado la redacción de mi pregunta. Lo editaré porque tiene razón, estoy interesado en el objeto CLR encuadernado, no en el ListBoxItem mismo. –