重置排序顺序时,删除数据网格上的排序箭头

时间:2016-03-23 17:33:45

标签: c# wpf sorting datagrid

我一直在努力工作几个小时。我已经想出如何使用CollectionView重置集合的排序顺序,现在问题是显示排序顺序的箭头不会消失。使用这个MSDN页面,我很确定我需要Datagrid列上的SortDirection属性。所以我绑定了但是当我设置属性时,我似乎无法更改排序箭头..这里是我所做的一些代码示例:

<DataGrid ItemsSource="{Binding CollectionView}"
              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}"
                        SortDirection="{Binding Sorter, Mode=TwoWay}">
    <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}"
                       SortDirection="{Binding Sorter, Mode=TwoWay}">
    <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>

在我的视图模型中,这是SortDirection绑定的属性

private ListSortDirection? _sorter;
public ListSortDirection? Sorter
{
   get { return _sorter; }
   set
   {
      if (_sorter == value)
      {
          return;
      }
      _sorter = value;
      RaisePropertyChanged();
   }
}

所以根据我所读到的设置Sort to null应该删除周围但我没有得到任何动作,好像它忽略了绑定,即使我使用枚举发送升序或降序但我什么都没有得到它。< / p>

0 个答案:

没有答案