特定の列に特別な並べ替え方法を追加して、さまざまな種類の並べ替えを許可するにはどうすればよいですか (120.5.1.110 を最小値にする代わりに、120.5.1.12 と 120.5.1.110 の間で 120.5.1.50 を並べ替えるなど)。
また、テンプレート列にバインドされたカスタム タイプのクリック ヘッダーの並べ替えを許可するにはどうすればよいですか。これは可能ですか?
IComparerを実装し、独自の比較ロジックを定義できます。
public class MyComparer : IComparer<Object>
{
public int Compare(Object stringA, Object stringB)
{
// Your logic here
}
}
その後、カスタム比較ツールでLINQOrderByメソッドを使用できます。
items = items.OrderBy(x => property, comparer).ToList();
このリンクを参照してください。
編集 して、WPFデータグリッドのデフォルトの並べ替え動作をオーバーライドします。このリンクの回答を参照してください。
列ヘッダーをクリックした後もカスタムの並べ替え順序を維持したい場合は、添付された動作を使用できます。私はうまくいくと思われるこの解決策を思いつきました:
これは MVVM ソリューションです。コード ビハインドの世界を詳しく調べたい場合は、おそらくもっと簡単な方法があります。