私はDataGrid
いくつかの列を持つWPFで作業してdecimal
います。最近、バインドされたプロパティをdecimal?
s に変更しましたが、ヘッダーをクリックしてもこれらの列を並べ替えることができなくなりました (他の列と同様)。ただし、コード ビハインドのメソッドを使用してそれらを並べ替えることができます。ヘッダーをクリックして列を並べ替えることができるdecimal?
かどうか、または不可能な場合の理由を知っている人はいますか? これが私の関連コードです:
問題の列のいくつか (属性は DataGrid の動作にアタッチされます。動作を有効または無効にしても違いはありません):
[Column("PPAvg", 7)]
public decimal? ProjectedPointsAvg { get; set; }
[Column("PPHi", 8)]
public decimal? ProjectedPointsHi { get; set; }
[Column("PPLo", 9)]
public decimal? ProjectedPointsLo { get; set; }
DataGrid 自体:
<DataGrid x:Name="poolDataGrid"
Grid.Row="1"
CanUserAddRows="False"
IsReadOnly="True"
MouseDoubleClick="poolDataGrid_MouseDoubleClick">
<i:Interaction.Behaviors>
<local:ColumnHeaderBehavior />
</i:Interaction.Behaviors>
</DataGrid>
次のようなものを使用して、分離コードで並べ替えることができます。
var col = poolDataGrid.Columns.SingleOrDefault(c => c is DataGridTextColumn && c.Header.ToString() == "PPHi");
poolDataGrid.Items.SortDescriptions.Add(new SortDescription(col.SortMemberPath, ListSortDirection.Descending));
残念ながら、他に追加することはあまりありません。誰かがこれで私を助けることができれば、私はそれを大いに感謝します.