ListBox中有一个删除按钮,点击后要删除当前项;翻资料后发现可以这样处理:
在Button的点击事件中通过
var curItem = ((ListBoxItem)video_name.ContainerFromElement((System.Windows.Controls.Button)sender)).Content;
可以拿到当前ListBox的item对象,如果你的ListBox值是绑定的动态集合,那么curItem 可以通过强转为该集合中类的对象,然后通过对象可以拿到绑定的数据;
之后可以通过遍历集合去删除这一项。
如有其它方法,欢迎告知,谢谢啦!
最近在项目中使用ListBox时遇到了这样的问题:ListBox中有一个删除按钮,点击后要删除当前项;翻资料后发现可以这样处理:在Button的点击事件中通过 var curItem = ((ListBoxItem)video_name.ContainerFromElement((System.Windows.Controls.Button)sender)).Content;可以拿
private void
Button
1_Click(object sender, RoutedEventArgs e)
var cur
Item
= ((
ListBox
Item
)lvQueue.ContainerFromElement((
Button
)sender)).Content;
DataRowView drv = c...
ListBox
控件
中
,修改样式
Item
Template,
中
外层为Grid,左侧为TextBlock显示内容,右侧为
Button
,
button
主要响应删除功能,双击文本,选
中
内容添加到指定区域;
首先来看看前端XAML设计
<
ListBox
x:Name="Dic_
ListBox
" Width="250" Height="700" HorizontalAlignment="Cente...
WPF
提供了许多包装集合的
控件
。这里包括了
ListBox
列表
控件
、ComboBox组合框
控件
,还有其他的更多的空间我们就不介绍了。
ListBox
是个典型的
Item
sControl。
首先,我们看看
ListBox
的自动包装。
WPF
的
ListBox
在显示功能上比Winform Form或
者ASP.NET的
ListBox
要强大很多。传统的
ListBox
只能将条目以字符串的形式显示,而
WPF
的
ListBox
除了可以显示
中
规
中
矩的字符串条目还能够显示更多的元素,
如CheckBox、
Button
、RadioBu
包含可选项列表。
ListBox
为
Item
sControl,这意味着它可以包含任何类型的对象的集合 (例如字符串、图像或面板) 。有关更多信息,请参见
Item
sControl类。
ListBox
中
的多个项是可见的,不同于ComboBox,只有选定项可见,除非IsDropDownOpen属性为true。SelectionMode属性确定
ListBox
中
的多个项是否一次可选择。
SelectionMode属性确定用户一次可以选择多少项。可以将属性设置为Single(默认)...
ListBox
I 在xaml里只能添加PreviewMouseDown事件和SelectedChange事件,没有
ListBox
Item
点击事件
,可以通过下面的方式添加
点击事件
this.stencil
ListBox
.AddHandler(UIElement.MouseDownEvent,
new Mouse
Button
EventHandl
ListView
中
只有双击事件,同
时
里面的List
Item
大多也是通过数据绑定获得的,很难在页面上直接操作。
虽然没有单机事件,但是ListView
中有
一个SelectionChanged事件,可以变相的当作单机事件。
可是这样依然不够,我们需要知道的我们点击的是哪一行,这个可以通过触发事件后通过ListView.SelectionChanged属性来直接获得所点击的那一行
中
的
控件
,相当于是直接为每一行添加了一个
点击事件
。
```csharp
public static T FindVisualChild<T>(DependencyObject obj) where T : DependencyObject
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is T)
return (T)child;
T childOfChild = FindVisualChild<T>(child);
if (childOfChild != null)
return childOfChild;
return null;
注意,FindVisualChild方法是一个递归方法,用于在Visual Tree
中
查找指定类型的子元素。在本例
中
,它用于查找Frame
控件
的对象。