you cannot typecast dynamic objects. the two have to be identical for them to be mapped correctly.
i'd suggest you try using the listbox itemsource to retrieve the records that you want. something
like:
private void dtstuff_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
{
...
stuffdt sd = {DataGridItemSource}[dtstuff.SelectedIndex];
...
}