我一直在努力工作几个小时。我已经想出如何使用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>