【发布时间】:2014-03-09 15:01:44
【问题描述】:
我在 2 个不同的视图中有 2 个 DataGrid。两个网格都设置为:
CanUserSort = "True"
Grid1 按用户点击列标题进行排序。然而,Grid2 对某些列进行排序,但对其他列不排序。例如我有一个 ID 列,值在页面加载时排序:
1 2 3 4 5
当通过点击标题进行排序时,它们会返回:
2 4 5 1 3
我也试过SortMemberPath="ColumnName"
<DataGrid AutoGenerateColumns="False" Height="233" HorizontalAlignment="Left" Margin="10,10,0,0" Name="PublicationsDataGrid" IsReadOnly="True" VerticalAlignment="Top" Width="1236" ItemsSource="{Binding Path=ModelPublicationsObservableList}"
SelectedItem="{Binding ModelSelectedPublication}" SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn x:Name="PublicationIdColumn" Binding="{Binding Path=PublicationId}" Header="PublicationId" Width="80"/>
<DataGridTextColumn x:Name="PublicationTitleColumn" Binding="{Binding Path=PublicationTitle}" Header="PublicationTitle" Width="350" />
<DataGridTextColumn x:Name="PublicationTypeColumn" Binding="{Binding Path=PublicationType}" Header="PublicationType" Width="253" />
<DataGridTextColumn x:Name="ProductCodeColumn" Binding="{Binding Path=ProductCode}" Header="ProductCode" Width="216" />
<DataGridTextColumn x:Name="dateCreatedColumn" Binding="{Binding Path=DateCreated, StringFormat={}\{0:dd/MM/yyyy HH:mm\}}" Header="DateCreated" Width="SizeToHeader" />
<DataGridTextColumn x:Name="userCreatedColumn" Binding="{Binding Path=userCreated}" Header="UserCreated" Width="SizeToHeader" />
<DataGridTextColumn x:Name="dateUpdatedColumn" Binding="{Binding Path=dateUpdated}" Header="DateUpdated" Width="SizeToHeader" />
<DataGridTextColumn x:Name="userUpdatedColumn" Binding="{Binding Path=userUpdated}" Header="UserUpdated" Width="SizeToHeader" />
</DataGrid.Columns>
</DataGrid>
有什么想法吗?谢谢
【问题讨论】:
-
在此处发布相关的 XAML 代码。
-
你能展示你到目前为止的代码尝试吗..
-
已编辑。 CanUserSortColumns 在属性窗口中设置。
-
这可能是一个愚蠢的问题,但行正在排序,而不是单独的列。所以,如果你按标题排序,你的 id 将不会被排序。这就是你所看到的吗?
-
另一件要考虑的事情是,该列有 3 个状态用于排序无、降序、升序,也许你只是过渡到“无”状态,你可以说是自上而下的箭头,向上,也没有箭头。