我有一个wpf应用程序,我在其中使用带有TableView的DevExpress GridControl。我的问题是我想获得点击的单元格。我在其他帖子上找到了解决方案:
private void TableView_OnMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
TableViewHitInfo hitInfo = tableView.CalcHitInfo(e.GetPosition(MainControl));
if (hitInfo.InRowCell)
{
object value = gridControl.MainView.GetRowCellValue(hitInfo.RowHandle, hitInfo.Column);
//...
}
}
但网格控件没有名为MainView的属性。我做错了什么?或者你有解决我问题的其他方法吗?
答案 0 :(得分:1)
用于获取单元格值的正确代码段应如下所示:
<dxg:GridControl ItemsSource="{Binding ...">
<dxg:GridControl.View>
<dxg:TableView AllowEditing="False"
MouseLeftButtonUp="TableView_MouseLeftButtonUp"/>
</dxg:GridControl.View>
</dxg:GridControl>
void TableView_MouseLeftButtonUp(object sender, MouseButtonEventArgs e) {
TableView tableView = sender as TableView;
TableViewHitInfo hitInfo = tableView.CalcHitInfo(e.OriginalSource as DependencyObject);
if (hitInfo.InRowCell) {
object value = tableView.Grid.GetCellValue(hitInfo.RowHandle, hitInfo.Column);
// do something
}
}
答案 1 :(得分:0)
MainView是GridControl在此示例中使用的View的名称。如果您已重命名或命名了您的视图,否则您显然还需要更改代码以使用该名称:
object value = MyGridControl.MyGridView.GetRowCellValue(hitInfo.RowHandle, hitInfo.Column);
或更简单,因为视图应该已经在范围内了:
object value = MyGridView.GetRowCellValue(hitInfo.RowHandle, hitInfo.Column);