[英]How can I programatically create a WPF Toolkit DataGridTemplateColumn?
[英]How can I sort a DataGridTemplateColumn on a WPF Toolkit DataGrid?
我有一個帶有一個DataGridTemplateColumn的WPF Toolkit DataGrid。 我在網格屬性中指定了我希望所有列都可以排序,但DataGridTemplateColumn不允許它。 所有其他列都允許排序。 我甚至嘗試過明確地將CanUserSort設置為true,但沒有運氣。 甚至可以對模板列進行排序嗎? 我提供了一個適用於所有列的自定義排序器,但標題不允許排序點擊。
<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>
您需要將Controls:DataGridTemplateColumn
上的SortMemberPath
屬性設置為要排序的CLR屬性的名稱。
將SortMemberPath="Name"
添加到DataGridTemplateColumn。 它開始排序。
<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
<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>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.