いくつかの推奨事項について、私はを使用する代わりにDataSource
を myに割り当て始めました。私のデータ ソースはすでに (あまり) 変更されない大きなリストであるため、これは便利です。ただし、割り当てを使用すると、列を並べ替えることができなくなります。DataGridView
DataGridView.Rows.Add(...)
DataSource
class MyGridView : DataGridView
{
private List<Person> m_personList;
private class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public Person(string first, string last)
{
FirstName = first;
LastName = last;
}
}
public MyGridView()
{
/* ...initialise stuff... */
m_personList.Add(new Person("Kate", "Smith"));
m_personList.Add(new Person("Bill", "Davids"));
m_personList.Add(new Person("Ann", "Roth"));
this.DataSource = m_personList;
}
}
List<Person>
byBindingList<Person>
と byも置き換えようとしましたBindingSource
が、それは問題ではないようです。カスタムソーターも追加してみました:
this.SortCompare += MyGridView_SortCompare;
private void MyGridView_SortCompare(object sender, EventArgs e)
{
/* ...Compare method...*/
}
しかし、物事は呼び出されません。DataSource で並べ替えを有効にする他の方法はありますか?
注:私の DataSource は (必ずしも) SQL ではなく、ただのList
.