如何防止列在wpf中重新排序

时间:2015-05-04 07:34:17

标签: .net wpf

我为网格编写了一个wpf代码,它有5-6列,第一列是名称。我想冻结这个列,这意味着它不应该是可移动的。 我试过这个

<DataGridTemplateColumn Header="Name" Width="Auto" SortMemberPath="Name" CanUserReorder="False">

但是这段代码的问题是,我无法移动我的名称列来替换另一列,但我可以将其他列拖到其位置。例如..我可以拖动我的shortName列代替name列。

我希望名称列不应该移动,但其他列可以移动。任何人都可以帮我这个吗?

1 个答案:

答案 0 :(得分:0)

来自MSDN

  

冻结列始终是显示顺序中最左侧的列。您不能将冻结的列拖到未冻结的列组中,也不能将未冻结的列拖到冻结列组中。

所以设置FrozenColumnCount ="1"应该可以解决问题

    <DataGrid FrozenColumnCount="1" CanUserReorderColumns="True">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Name"/>
            <DataGridTextColumn Header="#1"/>
            <DataGridTextColumn Header="#2"/>
            <DataGridTextColumn Header="#3"/>
        </DataGrid.Columns>
    </DataGrid>