DataGrid控件默认没有鼠标双击事件。如果为了满足用户需求,需要双击表格中的一条数据,弹出详细信息的话,需要自定义双击事件。在DataGrid控件上,直接扩展一个自定义的表格控件即可。示例代码如下所示:
public class MidDataGrid : DataGrid
{
/// <summary>
/// 记录运行时间
/// </summary>
private DateTime clickTs;
/// <summary>
/// 双击事件对象
/// </summary>
public event EventHandler<EventArgs> ItemDoubleClick;
/// <summary>
/// 记录执行时间,判定是否为双击事件
/// </summary>
public MidDataGrid()
{
clickTs = DateTime.Now;
this.MouseLeftButtonUp += UniDataGrid_MouseLeftButtonUp;
}
/// <summary>
/// 根据左键的双击间隔时间,确定是否为双击事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
void UniDataGrid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DateTime now = DateTime.Now;
if (now.Subtract(clickTs).TotalMilliseconds <= 500)
{
if (ItemDoubleClick != null)
{
ItemDoubleClick(this, new EventArgs());
}
}
else
{
clickTs = now;
}
}
}