各列にSortExpressionがあるDataGridがあります。並べ替え式を「ORDER BY LEN(myField)」と同等にしたいと考えています。
私が試してみました
SortExpression="LEN(myField)"
ただし、これは有効な構文ではないため、例外がスローされます。何か案は?
すでにクエリで len を返しているが、その列を表示せずに、元の列の sortexpression としてのみ使用するのはどうですか?
あなたのアイデアがデフォルトでサポートされているとは思いません。
SQL フレーバーに応じて、次のように動作する可能性があります。
SELECT
ColumnA as FieldA
, ColumnB as FieldB
, LEN(ColumnA) as FieldL
FROM TableName
ORDER BY L
そして、
SortExpression="FieldL"
Linqを使用すると、次のようにクエリを記述できます。
query.OrderBy(column => column.MyField.Length);
うーん。テストする時間がありました。SortExpression="Description.Length"を機能させることができました。これは1.1、2.0、または3.5ですか?
このSortExpression
パラメーターは、ソートする列の名前を指定し、その後に順序を制御する「ASC」または「DESC」を指定します。
列のプロパティを変更してDataType
、比較関数が文字列の長さを比較するユーザー定義型を指定できます。それは簡単な作業ではありません。