首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何对WPF Toolkit DataGrid上的DataGridTemplateColumn进行排序?

如何对WPF Toolkit DataGrid上的DataGridTemplateColumn进行排序?
EN

Stack Overflow用户
提问于 2010-04-30 01:13:52
回答 3查看 36.2K关注 0票数 96

我有一个带有一个DataGridTemplateColumn的WPF工具包DataGrid。我在网格属性中指定希望所有列都是可排序的,但DataGridTemplateColumn不允许这样做。所有其他列都允许排序。我甚至尝试过将该列的CanUserSort显式设置为true,但没有成功。是否可以对模板列进行排序?我已经提供了一个自定义的排序器,它适用于所有列,但标题不允许单击排序。

代码语言:javascript
复制
<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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-04-30 01:35:44

需要将Controls:DataGridTemplateColumn上的SortMemberPath属性设置为要作为排序依据的CLR属性的名称。

票数 178
EN

Stack Overflow用户

发布于 2010-04-30 09:29:00

SortMemberPath="Name"添加到DataGridTemplateColumn。它开始分类了。

代码语言:javascript
复制
<data:DataGridTemplateColumn Header="Name" SortMemberPath="Name" CanUserSort="True">
票数 38
EN

Stack Overflow用户

发布于 2014-03-27 15:26:32

代码语言:javascript
复制
 <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>
票数 16
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2739344

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档