【问题标题】:How to get data column value on click button inside data grid in WPF如何在WPF中数据网格内的单击按钮上获取数据列值
【发布时间】:2012-06-26 15:08:07
【问题描述】:

我们如何在数据网格控件内获取按钮单击事件的列值,
在 Grid 中有五列,第五列是按钮控件,第一列是一些 ID 值,
我正在使用

Int32 paperID = Convert.ToInt32(((System.Data.DataRowView)(DataGrid_MarksSummary.SelectedItem)).Row.ItemArray[0].ToString());

这里的paperID总是为0,
如何在单击按钮时获取此 id 值。

【问题讨论】:

    标签: wpf wpf-controls wpfdatagrid


    【解决方案1】:

    假设您的代码中有按钮的单击事件处理程序,您可以遍历此处理程序中的可视化树并找到底层行和您实际需要的数据:

    private void ColumnButtonClick(object sender, RoutedEventArgs e)
        {
            Visual visual = (Visual)sender;
            while ((visual = VisualTreeHelper.GetParent(visual) as Visual) != null)
            {
                if (!(visual is DataGridRow)) continue;
    
                var row = (DataGridRow)visual;
                object item = row.Item; //your bound object
                break;
            }
        }
    

    在这种情况下,“item”变量保存 DataGridRow 内的实际数据绑定对象。您可以将其转换为您实际用作数据网格源的对象类型,然后您可以从中获得所需的 PaperID。

    【讨论】:

      猜你喜欢
      • 2011-12-14
      • 2017-11-16
      • 2013-05-25
      • 2017-03-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多