Master/detail is supported through the DataGridCollectionView[Source]. In the example you provide, you initially bind the grid to the DataGridCollectionViewSource that has the Assignments as a source; however, in the Loaded event, you then reassign Assignment's DefaultView to the grid's ItemsSource property, removing the master/detail capabilities.
If you want to use code-behind to set the ItemsSource, then you should wrap your source in a DataGridCollectionView before assigning it to the ItemsSource property:
DataGridCollectionView view = new DataGridCollectionView( dal.timeSheetDataSet.Assignments.DefaultView );
this.AssignmentsGrid.ItemsSource = view;
Technical Writer - Xceed Software
Of all the things I've lost, I miss my mind the most. - Mark Twain