WPF ListView和ListBox等双击事件问题

Posted ligl

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF ListView和ListBox等双击事件问题相关的知识,希望对你有一定的参考价值。

上两篇文章中说双击行获取不到当前数据对象问题,

http://www.cnblogs.com/ligl/p/5636899.html

http://www.cnblogs.com/ligl/p/5629802.html

后来又研究发现可以从MouseButtonEventArgs参数中获取到

  <ListBox Grid.Row="1" ItemsSource="{Binding DataList}" 
                 MouseDoubleClick="ListBox_MouseDoubleClick"
                 SelectedItem="{Binding CurrentSelectItem}" Background="AliceBlue">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <DockPanel Height="50"  Background="DarkGray" Width="300">
                        <TextBox Text="{Binding Name}"  Height="30" Width="200" Background="DimGray"></TextBox>
                    </DockPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
View Code
 private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            var txtBox = e.Device.Target as TextBox;
            var model=txtBox.DataContext as ListBoxModel;
            ListBox listBox = sender as ListBox;
            if (listBox == null || listBox.SelectedItem == null)
            {
                MessageBox.Show("ListBox1双击对象为空...");
            }
        }
View Code

主要Code如下

  private void ListBox_MouseDoubleClick(object sender, MouseButtonEventArgs e){
var txtBox = e.Device.Target as TextBox; var model=txtBox.DataContext as ListBoxModel;//ListBoxModel是自定义的数据对象
}

 

以上是关于WPF ListView和ListBox等双击事件问题的主要内容,如果未能解决你的问题,请参考以下文章

WPF ListView:附加双击(在项目上)事件

使用 MVVM 从 WPF ListView 项触发双击事件

〝WPF〞中的〝ListBox〞、〝ListView〞和〝DataGridView〞有啥区别?

WPF中的ListBox,ListView和DataGridView有啥区别

WPF ListBox/ListView/DataGrid 列表滚动与虚拟化

WPF ListView ListBox 常用的样式记录