2012-03-03 9 views
0

私は銀色の4アプリをやっています。リンクボタンの子ウィンドウを開くDevExpress GridControlの現在のクリックと値の受け渡し

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

<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> 

私は子ウィンドウを開いて、そこにその 特定の行の詳細(名前、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??? 
} 

グリッドコントロールの行の値を取得する方法がわかりません。

より良い方法はありますか?

答えて

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. Obtaining Row Handles
  2. Identifying Rows
+0

は完璧な非常にmuch.worksありがとうございます! – pheonix4eva

関連する問題