Wpf 如何在文本框中获取datagrid选定行值

Wpf 如何在文本框中获取datagrid选定行值,wpf,datagrid,Wpf,Datagrid,我想在文本框中选择datagrid值 我试过这个密码 private void datagrid1_SelectionChange(object Sender, RoutedEventArg e) { var selectedrow = datagrid1.selectedItem as datarowview; var id = selectedrow["Tagid"]; // Here I get error that object reference is not set

我想在文本框中选择datagrid值

我试过这个密码

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

但当我刷新(或重新加载)datagrid1时,selectionChange会抛出一个错误:

对象引用不是对象的实例

在您的XAML中

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

我已经考虑过这个解决方案,但对我没有用处。因为我不想使用ViewModel如何填充数据网格?在按钮上单击datagried.Itemsource=dt.defaultview;再次感谢您宝贵的解决方案。这对我来说非常有用。
   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;
        }
    }