2009-10-14 19 views
12

にバインドされたDataGridViewDataSourceにバインドされています。 しかし、 "AllowUserToAddRows"プロパティを "True"に設定すると何も表示されません。List <>データソースでDataGridViewに行を追加することをユーザーに許可できません

DataSourceBindingList<myClass>に変更しようとしましたが、うまくいきました。

List<>BindingList<>に置き換えるべきか、それとも良い解決策があるのだろうかと思います。

答えて

21

myClassにはパブリックパラメータレスコンストラクタがありますか?そうでない場合は、BindingList<T>から派生し、AddNewCoreを上書きしてカスタムコンストラクタを呼び出すことができます。

(編集)代わりに - ちょうどBindingSourceであなたのリストをラップし、それが動作する可能性があります働いた:)

using System; 
using System.Windows.Forms; 
using System.Collections.Generic; 
public class Person { 
    public string Name { get; set; } 

    [STAThread] 
    static void Main() { 
     var people = new List<Person> { new Person { Name = "Fred" } }; 
     BindingSource bs = new BindingSource(); 
     bs.DataSource = people; 

     Application.Run(new Form { Controls = { new DataGridView { 
      Dock = DockStyle.Fill, DataSource = bs } } }); 
    } 
} 
+0

は非常にありがとう。 –

関連する問題