にバインドされた ListBox がありObservableCollection
ます。
それぞれListBoxItem
に が付いて表示されますDataTemplate
。にボタンがあり、クリックすると、DataTemplate の一部であるのDataTemplate
メンバーへの参照が必要になります。ボタンをクリックしてもアイテムが選択されないためObservableCollection
、プロパティを使用できません。ListBox.SelectedItem
ListBox.SelectedItem
したがって、マウスがホバーしたとき、またはボタンがクリックされたときに適切に設定する方法を理解する必要があります。ListBoxItem
または、ボタンが属する にバインドされた CLR オブジェクトへの参照を取得する別の方法を見つける必要があります。2 番目のオプションの方がすっきりしているように見えますが、おそらくどちらの方法でも問題ありません。
以下の簡略化されたコード セグメント:
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?");
}