WPF ListBox 鼠标左键双击
XAML
<!--鼠标左键双击-->
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Text}" ToolTip="鼠标左键双击,采集本年度!">
<TextBlock.InputBindings>
<MouseBinding Command="{Binding DataContext.SelectListBoxItemCommand, ElementName=mainWin }"
CommandParameter="{Binding ElementName=lst}"
MouseAction="LeftDoubleClick"></MouseBinding>
</TextBlock.InputBindings>
</TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
DataContext.SelectListBoxItemCommand 绑定的命令
ElementName=mainWin 这里是当前窗口名称,也就是DataContext的宿主
CommandParameter="{Binding ElementName=lst}" lst为ListBox名称
MouseAction="LeftDoubleClick" Action类型
Model
public class TextItem
{
public TextItem(string text)
{
Text = text;
}
public string Text { get; set; }
}
ViewModel
private ICommand _SelectListBoxItemCommand;
public ICommand SelectListBoxItemCommand
{
get
{
if (this._SelectListBoxItemCommand == null)
this._SelectListBoxItemCommand = new RelayCommandBase(SelectList_MouseDoubleClick);
return this._SelectListBoxItemCommand;
}
}
private void SelectList_MouseDoubleClick(object obj)
{
var lst= obj as ListBox;
TextItem textItem = lst.SelectedItem as TextItem;
//Task.Run(()=> GetOneYear(textItem));//实现
}
obj可以接收 CommandParameter 传递的参数。即Listbox
本文详细介绍了如何在WPF应用程序中使用XAML和C#处理ListBox的鼠标左键双击事件,通过绑定命令实现特定功能,如数据采集。展示了如何在ViewModel中定义并使用 RelayCommand 来响应 ListBoxItem 的双击操作。
1万+

被折叠的 条评论
为什么被折叠?



