访问DataGrid_LoadingRow事件处理程序中的行项

时间:2012-02-06 17:29:45

标签: c# wpf datagrid

我正在尝试根据特定条件为DataGrid行分配不同的工具提示。

private void DataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
    {
        DataGridRow row = e.Row;

        if (row["AssemblySummary"].ToString.Contains("Class"))
        {
            row.ToolTip = "Class definition...";
        }

    }

我收到“无法将索引应用于'System.Windows.Controls.DataGridRow'类型的表达式。”如果我有一行为什么我不能访问它的项目?如何访问cell [i]?

编辑制作:我很抱歉,我需要访问给定行中的第一个单元格,就像现在一样。我仍然有同样的错误。谢谢

2 个答案:

答案 0 :(得分:2)

试试这个并告诉我们它是否有效:

DataGridRow row = e.Row;
DataRowView rView = row.Item as DataRowView
if(rView != null && rView.Item["AssemblySummary"].ToString().Contains("Class"))
    row.ToolTip = "Class definition...";

如果没有,则可能是已加载可视行,但数据尚未绑定。

答案 1 :(得分:0)

您可以使用DataContext属性获取行的数据。

试试此链接http://techiethings.blogspot.com/2010/05/get-wpf-datagrid-row-and-cell.html