2012-02-08 15 views
0

データグリッド内のハイライトされた行から複数​​のセルを返す必要があり、いくつかの問題があります。ハイライトされた行から複数​​の値を返す

private void dg_SelectionChanged(object sender, SelectionChangedEventArgs e) 
{ 
value = dg.SelectedValue.To_String(); 
.... 
} 

そして、XAMLでそれが

<DataGrid SelectedValuePath=somevalue ... 

がどのように複数の項目のためにこれを行うだろう選択した値パスにバインドされます。選択は変更私が選択した値をつかんでいますです

行の中で。返されるsomevalueは、行内の一意のセルです。 hereから

+0

DataContextプロパティは、行を取得する必要があります。 – Paparazzi

答えて

1

private void selectedRowsButton_Click(object sender, System.EventArgs e) 
{ 
    Int32 selectedRowCount = 
     dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected); 
    if (selectedRowCount > 0) 
    { 
     System.Text.StringBuilder sb = new System.Text.StringBuilder(); 

     for (int i = 0; i < selectedRowCount; i++) 
     { 
      sb.Append("Row: "); 
      sb.Append(dataGridView1.SelectedRows[i].Index.ToString()); 
      sb.Append(Environment.NewLine); 
     } 

     sb.Append("Total: " + selectedRowCount.ToString()); 
     MessageBox.Show(sb.ToString(), "Selected Rows"); 
    } 
} 

基本的には、選択された行ではなく選択された値を取得するまで沸騰します。

dgの代わりにsenderを使用することをお勧めします。これは、そのようにゆるやかにバインドされるためです。すなわち、の型にsenderをキャストしてから、dgの代わりにキャストの結果を使用します。

関連する問題