DataGridViewでカスタムデータをバインドしてる場合に新規行を追加する方法

通常ならDataGridViewのデータソースにDataTableをバインドするのですが、今回はList<CustomDto>のインスタンスをバインドしてます。
(深い意味はまったくないです・・・。)
  
新規行を追加しようとDataGridViewにAddしたらエラー・・・。
「バインドしてるDataGridViewで行追加はできません」的なメッセージが出ました。
  
「こんなん出たっけ??」と思いつつ調査。
バインディングを使っている場合、DataGridView.Rows.Add()は使えないらしい・・・(;´Д`)
もちろんInsertも×。
  
DataTableでのバインド時はDataTable側のRowを増やせば自動的にDataGridView側も行が追加されるようなのですが、カスタムデータList<CustomDto>にCustomDtoのインスタンスをAddしてもDataGridView上は行追加されたように見えません(デバッグで確認するとListのCount自体はちゃんと増加してる)
  
これを解決するにはDataGridViewのデータソースを一旦nullにして、再度List<CustomDto>をバインドするしかないようです。
そうすると行がちゃんと増えて表示されました。
  
開発環境上(クアッドコア)では特に変な動きには見えないのですが、スペック低いマシンだとこの方法で画面がちらついたりしないのかちょっと心配です・・。