このサイトから取得した SimpleFilteredList というクラスを使用しています。
http://blogs.msdn.com/b/winformsue/archive/2007/12/06/filtering-code.aspx
BindingSource を介して DataGridView に追加すると、基本的な並べ替えをビジネス オブジェクトに適用できます。それは私の目的を非常によく果たしましたが、私は1つの側面を理解していません.
DataGridView で新しい行が選択されるたびに、SimpleFilteredList クラスのオーバーライドされた EndNew 関数が呼び出されます。これは、並べ替えアルゴリズムの実行を強制するため、最後の行が選択された前の行である場合に特に厄介です。
すべての列と DataGridView で Readonly が True に設定され、AllowUserToAddRows と AllowUserToDeleteRows が False に設定されています。
DataGridView で新しい行が選択されたときに、この EndNew 関数が呼び出されないようにするにはどうすればよいですか?
SimpleFilteredList クラスの EndNew 関数:
public override void EndNew(int itemIndex)
{
// Check to see if the item is added to the end of the list,
// and if so, re-sort the list.
if (sortPropertyValue != null && itemIndex > 0 && itemIndex == this.Count - 1)
ApplySortCore(this.sortPropertyValue, this.sortDirectionValue);
base.EndNew(itemIndex);
}