在WPF的DataGrid中对行添加单击事件
来源:互联网 发布:python面向对象封装 编辑:程序博客网 时间:2024/05/21 09:50
在做的一个c#的项目中发现Datagrid没办法直接对鼠标单击进行响应,调用MouseDown事件也需要点击某一行第二次才能响应。所以借助EventSetter来简单的实现了一个。
界面部分的代码
<DataGrid x:Name="dataGrid" HorizontalAlignment="Left" Margin="10,38,0,0" VerticalAlignment="Top" Height="257" FontSize="13.333" AutoGenerateColumns="False" AlternationCount="2" CanUserAddRows="False" MinWidth="504" Width="513" SelectionUnit="FullRow"> <DataGrid.RowStyle> <Style TargetType="DataGridRow"> <EventSetter Event="GotFocus" Handler="Item_GotFocus"/> </Style> </DataGrid.RowStyle> <DataGrid.Columns> <DataGridCheckBoxColumn /> <DataGridTextColumn Header="歌曲名" Width="200" Binding="{Binding Path=Title}" IsReadOnly="True"/> <DataGridTextColumn Header="艺术家" Width="127" Binding="{Binding Path=Artist}" IsReadOnly="True"/> <DataGridTextColumn Header="专辑" Width="140" Binding="{Binding Path=Album}" IsReadOnly="True"/> </DataGrid.Columns> </DataGrid>
对应的c#的代码
private void Item_GotFocus(object sender, RoutedEventArgs e) { var item = (DataGridRow)sender; FrameworkElement objElement = dataGrid.Columns[0].GetCellContent(item); if (objElement != null) { CheckBox objChk = (CheckBox)objElement; objChk.IsChecked = !objChk.IsChecked; } }
附上用mousedown事件的代码
private void DataGrid_MouseDown(object sender, MouseButtonEventArgs e) { if (e.LeftButton == MouseButtonState.Pressed) { var se = dataGrid.SelectedItem; FrameworkElement objElement = dataGrid.Columns[0].GetCellContent(se); if (objElement != null) { CheckBox objChk = (CheckBox)objElement; objChk.IsChecked = !objChk.IsChecked; } } }
需要在这个界面的构造函数中添加
dataGrid.MouseDown += DataGrid_MouseDown;
再附上一个效果图
1 0
- 在WPF的DataGrid中对行添加单击事件
- DataGrid中添加单击或者双击事件
- easyui datagrid中单击添加菜单事件
- wpf中datagrid的双击事件
- 在VS2008的WPF工程中添加事件的方法
- wince 在C#中 对datagrid 的数据添加
- Android之如何在XML中添加单击事件
- 给DataGridView 添加鼠标单击事件,并且在contexMenutstrip中显示,获取该行的主键
- EasyUI中对datagrid的双击事件
- 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色
- 捕捉DataGrid的滚动条单击事件
- SWT的button组件中,添加单击事件监听
- Jquery easyui从零单排之datagrid添加行单击事件
- b-jui框架 datagrid数据添加单击事件
- WPF对ListView的ListViewItem添加双击事件
- EasyUI - datagrid中单元格里编辑控件的单击事件如何获取当前行的index
- 在DataGrid中对内容的截取
- 在DataGrid中对内容的截取
- APP启动过程
- RHEL7进程管理
- Spring注解解释(@Primary、@Qualifier)
- RHEL7VIM编辑器
- cs231n-(1)图像分类和kNN
- 在WPF的DataGrid中对行添加单击事件
- 【Java】SpringMVC Post&Get编码问题
- sublime text 3的c/c++开发环境搭建
- 5分钟看懂比特币
- CSS3绘制各类图形
- JavaScript与HTML DOM交互
- 关于一些JAVA的基础知识总结
- qt线程同步之信号量
- 四大组件之Activity