2015-03-19 114 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