13

私はDataGridViewDataSourceセットを持っていますList<myClass>

AllowUserToAddRowsただし、に設定するとtrue、新しい行インジケーターが表示されません。

に設定するDataSourceBindingList<myClass>、問題は解決したようです。

Q:を置き換える必要がありますかList<>BindingList<>それともより良い解決策がありますか?

4

1 に答える 1

23

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

(編集)あるいは、リストをaでラップするだけで、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 } } });
    }
}
于 2009-10-14T12:15:34.753 に答える