c# - datagrid鼠标双击事件wpf
问题描述
我已经使用 WPF 创建了一个应用程序。我在数据网格中显示了一些数据。目前,我使用选择更改事件从数据网格中获取数据。我有以下代码
private void datagrid1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DataGrid dg = sender as DataGrid;
DataRowView dr = dg.SelectedItem as DataRowView;
if (dr != null)
{
int id = Convert.ToInt32(dr["Id"].ToString());
}
}
只有当用户双击数据网格时,我才需要获取数据。这怎么可能?
解决方案
XAML:
<DataGrid MouseDown="datagrid1_MouseDown"></DataGrid>
后面的代码:
private void datagrid1_MouseDown(object sender, MouseButtonEventArgs e)
{
if (e.ChangedButton == MouseButton.Left && e.ClickCount == 2)
{
DataGrid dg = sender as DataGrid;
DataRowView dr = dg.SelectedItem as DataRowView;
if (dr != null)
{
int id = Convert.ToInt32(dr["Id"].ToString());
}
}
}
PS您可以使用空传播使您的代码更健壮:
var idStr = ((sender as DataGrid)?.SelectedItem as DataRowView)?["Id"]?.ToString();
if (idStr != null)
{
int id = Convert.ToInt32(idStr);
}
推荐阅读
- javascript - 我有两个
- c++ - 将精灵定位在 (0, 0) 会使精灵离开屏幕几个像素
- c# - TPL 数据流:取消
- jquery - 如何在模态照片库中制作上一个和下一个按钮
- scala - 无法使用功能 API 执行并行计算
- dart - 如何使用drawImageRect设置绘制到画布上的图像的不透明度?
- c# - 使用 LINQ 迭代两个集合以检查匹配属性的正确方法是什么?
- python - 如何找到蒙特卡洛算法中的百分比误差?
- disruptor-pattern - 当生产者比消费者快得多时,为什么 Disruptor 会持有大量数据?
- java - 如何使用 Sring Boot 读取多部分?