¿Cómo puedo ordenar un DataGridTemplateColumn en un WPF Toolkit DataGrid?
sorting wpftoolkit (3)
Se agregó SortMemberPath="Name"
a DataGridTemplateColumn. Comenzó a ordenar.
<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
Tengo un WGT Toolkit DataGrid con una DataGridTemplateColumn. He especificado en un atributo de cuadrícula que deseo que todas las columnas sean ordenables, pero DataGridTemplateColumn no lo permitirá. Todas las demás columnas permiten la clasificación. Incluso he intentado establecer explícitamente CanUserSort en verdadero para esa columna, pero no tuve suerte. ¿Es posible ordenar una columna de plantilla? He proporcionado un clasificador personalizado que funciona para todas las columnas, pero el encabezado no permitirá un clic de ordenación.
<Controls:DataGrid ItemsSource="{Binding Events}" AutoGenerateColumns="False"
CanUserSortColumns="True"
CanUserReorderColumns="False"
Sorting="DataGrid_Sorting"
x:Name="EventsGrid">
<Controls:DataGrid.Columns>
<Controls:DataGridTemplateColumn Header="Type" Width="42" CanUserResize="False">
<Controls:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding EventTypeImage, Mode=OneWay}" HorizontalAlignment="Center" Width="16"/>
</DataTemplate>
</Controls:DataGridTemplateColumn.CellTemplate>
</Controls:DataGridTemplateColumn>
<Controls:DataGridTextColumn Header="Source"
Binding="{Binding Source, Mode=OneWay}" />
<Controls:DataGridTextColumn Header="Details" MinWidth="175"
Binding="{Binding Details, Mode=OneWay}" />
<Controls:DataGridTextColumn Header="Timestamp" MinWidth="175"
Binding="{Binding Timestamp, Mode=OneWay}"
IsReadOnly="True"/>
</Controls:DataGrid.Columns>
</Controls:DataGrid>
SortMemberPath
establecer la propiedad SortMemberPath
en Controls:DataGridTemplateColumn
en el nombre de la propiedad CLR que desea ordenar.
<DataGridTemplateColumn SortMemberPath="DataDiNascita" Header="Data di nascita" IsReadOnly="True">
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<DatePicker SelectedDate="{Binding Path=DataDiNascita}"></DatePicker>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=DataDiNascita,StringFormat=/{0:dd/MM/yyyy/}}"></TextBlock>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>