【问题标题】:How to get single click event on image in column of DevExpress Grid Control using wpf?如何使用 wpf 在 DevExpress Grid Control 列中的图像上获取单击事件?
【发布时间】:2013-08-14 01:46:46
【问题描述】:
我有导航栏控件和一个NavBar 组包含网格控件。我想在网格控件的一列中的特定图像上获得单击事件,而在图像单击事件上,我必须显示一些菜单选项的弹出窗口。
我正在使用网格控件的预览鼠标左键向上事件来获得点击,但它不起作用,因为网格控件驻留在Navbar 控件中。
基本上我的问题是我无法单击网格控件列上的图像,而网格列本身位于NavBar 控件的一个Navbar 组中。
这个link 有我的演示项目。
任何帮助将不胜感激。
【问题讨论】:
标签:
devexpress
wpf-4.0
navigationbar
gridcontrol
【解决方案1】:
我看过你的演示项目,我认为下面的代码可以解决你的问题:-
private void gridControl1_PreviewMouseDown(object sender, MouseButtonEventArgs e)
{
TableViewHitInfo hit = tableView1.CalcHitInfo(e.OriginalSource as DependencyObject);
if (hit.InRowCell) {
gridControl1.View.FocusedRowHandle = hit.RowHandle;
if (e.ClickCount == 1)
{
if (e.XButton1 == MouseButtonState.Released)
{
if (hit.Column.FieldName == "number")
{
var row = gridControl1.GetFocusedRow();
data d = (data)row;
MessageBox.Show(d.number.ToString());
x = d.number;
}
if (e.RightButton == MouseButtonState.Pressed)
{
if (hit.Column.FieldName == "image")
{
gridControl1.View.FocusedRowHandle = hit.RowHandle;
var row = gridControl1.GetFocusedRow();
data d = (data)row;
x = d.number;
popup.StaysOpen = true;
popup.IsEnabled = true;
popup.IsOpen = true;
}
}
}
}
}
}