ListBoxI 在xaml里只能添加PreviewMouseDown事件和SelectedChange事件,没有ListBoxItem点击事件,可以通过下面的方式添加点击事件
this.stencilListBox.AddHandler(UIElement.MouseDownEvent,
new MouseButtonEventHandler(StencilMouseDown), true);
http://stackoverflow.com/questions/1271375/how-to-capture-a-mouse-click-on-an-item-in-a-listbox-in-wpf
ListBoxI 在xaml里只能添加PreviewMouseDown事件和SelectedChange事件,没有ListBoxItem点击事件,可以通过下面的方式添加点击事件 this.stencilListBox.AddHandler(UIElement.MouseDownEvent, new MouseButtonEventHandl
ListView中只有双击事件,同时里面的List
Item
大多也是通过数据绑定获得的,很难在页面上直接操作。
虽然没有单机事件,但是ListView中有一个SelectionChanged事件,可以变相的当作单机事件。
可是这样依然不够,我们需要知道的我们点击的是哪一行,这个可以通过触发事件后通过ListView.SelectionChanged属性来直接获得所点击的那一行中的控件,相当于是直接为每一行添加了一个
点击事件
。
WPF
实现MVVM的事件绑定的两种非常规方式。
参考博客:https://blog.csdn.net/IQQQQU/article/details/86530285
1、重写InvokeCommandAction来扩充返回的参数
2、运用Behavior来实现事件,可以通过两种方式来获取其他元素的控件,一种是运用视图树VisualTree来找所需的父控件或者子控件(控件到手了,就可以取到所需的参数),另一种是通过写依赖属性的方式来获取控件,本Demo是通过写依赖属性来实现的
DataContext.EsCanSelectList
Mouse
DoubleClickCommand C#后台鼠标左键双击事件命令实现
ElementName=w 数据源为窗口 w为窗口名称
Path=ExportName textblock显示数据来源 为CanSelectLis动态数据集合中的一个元素的属性
C#后台代码:
/// 导出设置的数据模型
TargetType="{x:Type
ListBox
Item
}" BasedOn="{StaticResource {x:Type
ListBox
Item
}}">
EventSetter Event="
Mouse
DoubleClick" Handler="
ListBox
Item
_
Mouse
DoubleClick"/>
Silverlght 里面
ListBox
Item
点击左键
点击事件
,防止SelectChange事件点击相同的不触发。
有什么问题可以直接加
WPF
/Silverlight
找晴天就可以。
乐意帮你们处理
WPF
任何问题。
ListBox
中有一个删除按钮,点击后要删除当前项;翻资料后发现可以这样处理:
在Button的
点击事件
中通过
var cur
Item
= ((
ListBox
Item
)video_name.ContainerFromElement((System.Windows.Controls.Button)sender)).Content;
ListBox
控件中,修改样式
Item
Template,中外层为Grid,左侧为TextBlock显示内容,右侧为Button,button主要响应删除功能,双击文本,选中内容添加到指定区域;
首先来看看前端XAML设计
<
ListBox
x:Name="Dic_
ListBox
" Width="250" Height="700" HorizontalAlignment="Cente...