2015-03-19 82 views
0

我想在文本框中選擇datagrid的值。 我試過下面的代碼如何在文本框中獲取datagrid選定的行值

private void datagrid1_SelectionChange(object Sender, RoutedEventArg e) 
{ 
    var selectedrow= datagried1.selectedItem as datarowview; 
    var id= selectedrow["Tagid"]; //Here get error that object refrence is not set is an instance of an object 
    string s= conver.tostring(id); 
    txttextbox1.text= s; 
} 

它工作正常。

但是當我刷新(重裝)datagrid1然後selectionChange給我error..that object refrence is not instance of an object.

+1

HTTP:/ /stackoverflow.com/questions/3913580/get-selected-row-item-in-datagrid-wpf – Rohit 2015-03-19 08:03:00

+0

我已經看過這個解決方案,但沒有用爲了我。因爲我不想使用viewmodel – Dipika 2015-03-19 08:30:12

+0

爲什麼再問一次? – Muds 2015-03-19 09:11:44

回答

0

在您的XAML

<DataGrid Name="MyGrid" AutoGenerateColumns="False" SelectionChanged="DataGrid_Details_SelectionChanged"> 

.cs文件中添加

private void DataGrid_Details_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     try 
     { 
      var row_list = GetDataGridRows(MyGrid); 
      foreach (DataGridRow single_row in row_list) 
      { 
       if (single_row.IsSelected == true) 
       { 
        //Get your value over here 
       } 
      } 

     } 
     catch { } 
    } 

    public IEnumerable<DataGridRow> GetDataGridRows(DataGrid grid) 
    { 
     var itemsSource = grid.ItemsSource as IEnumerable; 
     if (null == itemsSource) yield return null; 
     foreach (var item in itemsSource) 
     { 
      var row = grid.ItemContainerGenerator.ContainerFromItem(item) as DataGridRow; 
      if (null != row) yield return row; 
     } 
    } 
+0

再次感謝您寶貴的解決方案。這對我來說完美無缺。 – Dipika 2015-03-20 05:44:39

+0

但我從這個解決方案獲得索引。如何獲得特定的列值... – Dipika 2015-03-20 05:56:59

相關問題