ListBoxやDataGridなどを使っている場合で、選択されているものを削除したい時は要注意。
SelectedItemの削除処理は、素直に書いちゃうと自分で自分を削除するようになってしまう。
一度削除対象をListに格納してから削除ループを回すべし

private void btnヘッダ削除_Click(object sender, RoutedEventArgs e) {
 var dellist = 伝票ヘッダDataGrid.SelectedItems.Cast<伝票ヘッダ>().ToList();
 foreach (var item in dellist) {
       伝票ヘッダDomainDataSource.DataView.Remove(item);
  }

 //削除に失敗する失敗する書き方
 //foreach (伝票ヘッダ item in 伝票ヘッダDataGrid.SelectedItems
 //    伝票ヘッダDomainDataSource.DataView.Remove(item);
 //}
}