0

I have a WPF application where I want to select item from datagrid and pass to textbox. after that on add button selected gridrow must be remove. I have a stored procedure to remove from table. And at same time reload the table in same datagrid.

I tried this code

private void refresh()
{
    datagrid1.items.refresh();
}

private void btnAdd_Click(object Sender, RoutedEventArg e)
{
    refresh();
}

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

After click add button, I get the error

Object reference not set to an instance of an object

marc_s
  • 675,133
  • 158
  • 1,253
  • 1,388
Dipika
  • 359
  • 1
  • 4
  • 16
  • I'm guessing that the error occurs in your **referesh()** method. What exactly is null? Is it the **datagrid1** or the **datagrid1.items**? Also [please see this question](http://stackoverflow.com/questions/4660142/what-is-a-nullreferenceexception-and-how-do-i-fix-it) – Mike Eason Mar 18 '15 at 10:19
  • it would be easier if you look at mvvm, there you just handle the collection and the datagrid is "refreshed" automatic with the right bindings :) – blindmeis Mar 18 '15 at 10:29
  • @ Mike eason- actually datagrid1 not relode or refresh by using datagrid1.items.referesh(); In refresh() I just do datagrid1.items.referesh(); – Dipika Mar 18 '15 at 10:30
  • @blindmeis- I did not use mvvm – Dipika Mar 18 '15 at 10:31

1 Answers1

0

You are forcing your selected item as datarowView which it is not, cast to correct type

var selectedrow = datagrid1.selectedItem as DataRowView

SelectedItem is type of object that is bound to grid not row

Try doing this

private void datagrid1_SelectionChange(object Sender, RoutedEventArg e)
{
    var selectedItem = datagrid1.selectedItem as MY_Custom_Object;
    var id = selectedItem.Tagid; 
    string s = Convert.ToString(id);
    txttextbox1.text= s;
}
marc_s
  • 675,133
  • 158
  • 1,253
  • 1,388
Muds
  • 3,754
  • 5
  • 25
  • 46