【问题标题】:Sorting by header issue WPF MVVM按标题问题排序 WPF MVVM
【发布时间】: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 个状态用于排序无、降序、升序,也许你只是过渡到“无”状态,你可以说是自上而下的箭头,向上,也没有箭头。

标签: c# wpf sorting mvvm


【解决方案1】:

认为我找到了罪魁祸首。排序不适用于小于 10 的整数值。我已将表中的 ID 更改为 0000001 等,一切都很好

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-15
    • 2014-10-12
    • 1970-01-01
    • 2014-06-19
    • 1970-01-01
    • 2011-08-02
    • 1970-01-01
    相关资源
    最近更新 更多