wpf中我在每个listboxItem里都加了一个按钮,点击按钮后,如何知道点击的按钮是属于哪个item呢?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了wpf中我在每个listboxItem里都加了一个按钮,点击按钮后,如何知道点击的按钮是属于哪个item呢?相关的知识,希望对你有一定的参考价值。

ListBoxItem本身就是可选的,你要操作的话,可以给ListBoxItem的Selected属性添加事件,SelectedIndex值里面存了Item的序号的,值从0开始的。 参考技术A 其实这个可以通过绑定父控件的属性来实现,给个Demo
前台:
<Grid>
<ListBox>
<ListBox.Resources>
<Style TargetType="x:Type ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="x:Type ListBoxItem">
<Button Content="click" Margin="0,2" Width="50" Height="25" Click="Button_Click"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Resources>
<ListBoxItem Tag="1"/>
<ListBoxItem Tag="2"/>
<ListBoxItem Tag="3"/>
</ListBox>
</Grid>
后台:
private void Button_Click(object sender, RoutedEventArgs e)

Button btn = sender as Button;

RelativeSource rs = new RelativeSource(RelativeSourceMode.FindAncestor);
rs.AncestorType=typeof(ListBoxItem);

Binding binding = new Binding("Tag") RelativeSource=rs;

btn.SetBinding(Button.ContentProperty,binding);
本回答被提问者和网友采纳

以上是关于wpf中我在每个listboxItem里都加了一个按钮,点击按钮后,如何知道点击的按钮是属于哪个item呢?的主要内容,如果未能解决你的问题,请参考以下文章

WPF Listbox 控件模板不显示 Listboxitem 控件模板和 ItemTemplate 数据模板

WPF中如何给listboxitem添加单机时间

[WPF 自定义控件]创建包含CheckBox的ListBoxItem

WPF:改变ListBoxItem和ListViewItem的颜色

WPF:如何使用 MVVM 将命令绑定到 ListBoxItem?

如何知道一个显示的listboxItem是否在WPF ListBox中?