0

我正在做 Silverlight 4 应用程序。

我有 4 列的 DevExpress GridControl。我已将 HyperlinkBut​​ton 作为其中一列的显示模板,如下所示。网格控件的项目源已绑定在代码隐藏中。

<dxg:GridControl Name="grid" Height="294" Width="634">
    <dxg:GridControl.Columns>
        <dxg:GridColumn FieldName="Name" />
        <dxg:GridColumn FieldName="Id_no" />
        <dxg:GridColumn FieldName="Type" />
        <dxg:GridColumn Header="View Details">
            <dxg:GridColumn.DisplayTemplate>
                <ControlTemplate>
                    <HyperlinkButton Click="HyperlinkButton_Click"/>
                </ControlTemplate>
            </dxg:GridColumn.DisplayTemplate>
        </dxg:GridColumn>
    </dxg:GridControl.Columns>

在 HyperlinkBut​​ton 的 Click 事件处理程序中,我想打开一个子窗口并将该特定行的详细信息(名称、Id_no、类型)传递给它。

void HyperlinkButton_Click(object sender, RoutedEventArgs e) {
    Childwin win_ch = new Childwin();
    win_ch.Show();
    // pass the row values to the child window???
}

不知道如何获取网格控件的行值。

有任何想法吗?有没有更好的方法?

4

1 回答 1

1

您可以通过DataViewBase.GetRowHandleByTreeElement方法获取包含超链接的网格行的行句柄。然后使用GridControl.GetRow方法获取行对象。

void HyperlinkButton_Click(object sender, RoutedEventArgs e) {
    int rowHandle = tableView3.GetRowHandleByTreeElement((DependencyObject)sender);
    object row = gridControl1.GetRow(rowHandle);
    // then use the row object
}

另请查看以下帮助文章:

  1. 获取行句柄
  2. 识别行
于 2012-03-03T13:52:55.333 回答