【问题标题】:OnCelldouble click in my gridviewOnCell双击我的gridview
【发布时间】:2014-09-05 12:59:06
【问题描述】:

我需要双击网格视图中的单元格,每当我单击它时,它应该会打开一个新窗口来编辑值。但是,在我的代码中,即使我有一个值,它也会返回 null。我认为我的 gridview 的事件处理程序不正确。这是消息“对象引用未设置为对象的实例。”

这是我的代码..

构造函数:

grdProducts.AddHandler(GridViewCellBase.CellDoubleClickEvent, 
                       new EventHandler<RadRoutedEventArgs>(OnCellDoubleClick), 
                       true);

点击事件:

private void OnCellDoubleClick(object sender, RadRoutedEventArgs e)
{
    Product product = (sender as Telerik.Windows.Controls.GridViewColumn).DataContext as Product;
    ShowProductWindow(product);

    //MessageBox.Show("test");
}

帮我弄清楚。

【问题讨论】:

  • 你能在你有异常的地方显示一个确切的行吗?
  • @JleruOHeP this: Product product = (sender as Telerik.Windows.Controls.GridViewColumn).DataContext as Product;
  • 这是我调用 RadWindow 的代码 sn-p: private void ShowProductWindow(Product product) { if (product != null) { ProductWindow productWindow = new ProductWindow(product, projectDBContext); productWindow.Closed += ProductWindowClosed; productWindow.ShowDialog(); } }
  • 我不确定我应该打电话给事件的发件人。我认为 Telerik 有另一种方式来调用该方法..

标签: c# wpf double-click


【解决方案1】:

您有这个例外,因为您的发件人不是Telerik.Windows.Controls.GridViewColumn 类型。您的发件人可能是 GridViewCell。试试这样的:

private void OnCellDoubleClick(object sender, RadRoutedEventArgs e)
{
    var cell = e.Source as GridViewCell;
    if (cell == null) return;

    var row = cell.ParentRow as GridViewRow;
    if (row == null) return;

    Product product = row.DataContext as Product;
    ShowProductWindow(product);

    //MessageBox.Show("test");
}

【讨论】:

  • 它没有用。即使单元格有值,它也总是返回 null。
  • @Kim 你能查一下 - 你的发件人是什么?
  • 我的发件人是单元格上的 RadRoutedEventargs,它可以工作,但单元格仍然返回 null。我确实尝试过这样的代码.. Product product = (sender as Telerik.Windows.Controls.GridViewColumn).DataContext as Product;仍然,我网格上的单元格返回为空。我认为 Telerik 有不同的方法。我不确定..
  • 这是我关于 radwindow 如何显示的代码 sn-p.. Product product = (sender as RadButton).DataContext as Product; ShowProductWindow(产品);
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-09
  • 1970-01-01
  • 2018-02-01
  • 1970-01-01
  • 2014-09-26
  • 1970-01-01
相关资源
最近更新 更多