0

私はSilverlight 4アプリをやっています。

4列のDevExpress GridControlがあります。以下に示すように、HyperlinkBut​​ton を列の 1 つの表示テンプレートとして配置しました。グリッド コントロールのアイテム ソースがコード ビハインドでバインドされています。

<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 イベントハンドラー内で、子ウィンドウを開いて、その特定の行の詳細 (Name,Id_no,Type) を渡したいと考えています。

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 に答える