2016-03-23 58 views
1

我创建了一个包含一些按钮和一个DataGrid的视图。 DataGrid在应用程序解析excel文件时显示项目。我添加了一个取消解析线程的按钮。我能够清除DataGrid是我遇到的唯一问题,如果任何列已经通过取消进行了排序。重置DataGrid排序返回到其初始状态

我的继承人Datagrid中的一个例子:

<DataGrid ItemsSource="{Binding Parts}" 
        Visibility="{Binding DatagridIsVisible, Converter={StaticResource BooleanToVisibilityInverseParameterConverter}}" 
        AutoGenerateColumns="False" 
        Margin="0,0,0,44" 
        FontSize="20" 
        AlternationCount="2" 
        AlternatingRowBackground="WhiteSmoke" 
        CanUserAddRows="False"> 
    <DataGrid.Columns > 
    <DataGridTextColumn Header="Raw Data" 
         Binding="{Binding RawData}"> 
     <DataGridTextColumn.CellStyle> 
      <Style> 
       <Setter Property="Border.BorderBrush" Value="Black"/> 
       <Setter Property="Border.BorderThickness" Value="0 0 1 0"/> 
      </Style> 
     </DataGridTextColumn.CellStyle> 
    </DataGridTextColumn> 
    <DataGridTextColumn Header="Manufacturer" Binding="{Binding Manu}"> 
     <DataGridTextColumn.CellStyle> 
      <Style> 
       <Setter Property="Border.BorderBrush" Value="Black"/> 
       <Setter Property="Border.BorderThickness" Value="0 0 1 0"/> 
      </Style> 
     </DataGridTextColumn.CellStyle> 
    </DataGridTextColumn>  
    </DataGrid.Columns> 
</DataGrid> 

我已经通过互联网梳理,发现了如何做到这一点使用后面方法的代码示例,但我真的想坚持MVVM这一点。

这甚至可能吗?

+0

什么是类零件(的ItemsSource)的? – ganchito55

+0

零件是ObservableCollection的一个属性,仅用于包含字符串的类型I – Fresh

回答

1

我认为你应该使用集合视图,而不是一个观察的集合,为您的ItemsSource,因为如果使用可观察集合你只有一个集合视图,因此所有的改变将被保留。但是,如果您使用集合视图,则可以更改集合视图并删除排序。

您可以see more here

我希望这可以帮助你

+0

嗨,谢谢你的回答,我似乎已经清除了排序,但如果排序是升序还是降序,则会显示箭头。 – Fresh