Possiedo un ListBox, associato a ObservableCollection
.WBox ListBox oggetti con DataTemplates - Come faccio a fare riferimento all'oggetto CLR associato a ListBoxItem dall'interno di DataTemplate?
Ogni ListBoxItem
viene visualizzato con DataTemplate
. Ho un pulsante nel mio DataTemplate
, che quando si fa clic, ha bisogno di un riferimento al membro del ObservableCollection
per il DataTemplate. Non riesco a utilizzare la proprietà ListBox.SelectedItem
perché l'elemento non viene selezionato quando si fa clic sul pulsante.
Quindi: ho bisogno di capire come impostare correttamente ListBox.SelectedItem
quando si passa il mouse o quando si fa clic sul pulsante. O ho bisogno di capire un altro modo per ottenere un riferimento all'oggetto CLR legato allo ListBoxItem
a cui appartiene il pulsante. La seconda opzione sembra più pulita, ma in entrambi i casi è probabilmente OK.
segmento di codice semplificato di seguito:
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?");
}
Questo è perfetto, e sei riuscito a correggere anche la formulazione della mia domanda. Lo modifico come hai ragione, mi interessa l'oggetto CLR associato, non lo stesso ListBoxItem. –