同じ問題私のためにも、そしてBindingList
はそれを解決しませんでしたが、マーリンの答えは私の最終的な解決に向けたヒントを与えました。
BindingSource
にリストをラップすることは、解決策の重要な部分です(別の質問でも記載されています):Can't Allow User To Add Rows to DataGridView with List<> Datasource)。
私の場合、欠落していたステップは、のクラスに、私のリストのオブジェクトにパブリックパラメータレスコンストラクタがないことでした。パラメーターなしのコンストラクターを追加すると、AllowUserToAddRows
が正常に機能するようになりました。
私はマーリンの答えをしようとしたとき、のメッセージが、またAddingNew
イベントを処理することにより、追加の行を有効にすることが可能であり得ることを示唆した例外から手掛かりを得た:
AddNewメソッドをすることはできませんMyType型で呼ばれます。このタイプには、 のパブリックデフォルトコンストラクタがありません。 AddingNewイベントを処理して適切なオブジェクトを作成する場合は、「MyType」タイプのでAddNewを呼び出すことができます。
幸いにも、パブリックなパラメータのないコンストラクタを追加することは問題ではありませんでしたが、パラメータのないコンストラクタを追加できない人にとっては、希望のメッセージです。
私はあなたのコードを試して、それは働いたので、ありがとう:)しかし、私は実際には(これは唯一の違いです)データソースとしてリストを使用していますおそらく私の問題の原因です。リストが「行の追加」機能を動作させない理由を知っていますか? –
** IBindingList **インターフェイスを実装しています。 – adatapost