c# – 防止重新排序第一列

c# – 防止重新排序第一列,第1张

概述我有一个listview,其中包含gridcolumns的网格视图,我想重新排序除第一列以外的所有列.我怎样才能做到这一点?另外我想保存新列位置. 我的listview代码是: <Style x:Key="myListViewStyle" TargetType="{x:Type ListView}" x:Shared="False"> <Setter Property="Bord 我有一个ListvIEw,其中包含grIDcolumns的网格视图,我想重新排序除第一列以外的所有列.我怎样才能做到这一点?另外我想保存新列位置.

我的ListvIEw代码是:

<Style x:Key="myListVIEwStyle" targettype="{x:Type ListVIEw}"  x:Shared="False">        <Setter Property="borderBrush" Value="RoyalBlue" />        <Setter Property="Foreground"  Value="teal" />        <Setter Property="FontSize" Value="14" />        <Setter Property="margin" Value="20,60,20,50" />        <Setter Property="borderThickness" Value="4,4,4" />        <Setter Property="ListVIEw.VIEw">            <Setter.Value>                <GrIDVIEw AllowsColumnReorder="True" >                    <GrIDVIEw.Columns>                        <GrIDVIEwColumn header="A/A" WIDth="30" displayMemberBinding="{Binding AA}"></GrIDVIEwColumn>                        <GrIDVIEwColumn header="Price" WIDth="350" displayMemberBinding="{Binding Price}" >                        </GrIDVIEwColumn>                        <GrIDVIEwColumn header="Shop" WIDth="200" displayMemberBinding="{Binding Shop}" >                        </GrIDVIEwColumn>                    </GrIDVIEw.Columns>                </GrIDVIEw>            </Setter.Value>        </Setter>    </Style>

我也用这样的代码创建ListvIEw:

ListVIEw l1 = new ListVIEw(); l1.Style = Resources["myListVIEwStyle"] as Style;
解决方法 如果它只是你想要kepp的第一列,试试这个:

XAML:

<GrIDVIEwColumnheader x:name="FirstColumn" MouseMove="PreventDrag">

代码背后:

public MyWindow(){    InitializeComponent();    (MyListvIEw.VIEw as GrIDVIEw).Columns.CollectionChanged += ColumnsReordered;}private voID PreventDrag(object sender,MouseEventArgs e){    if (e.leftbutton == MousebuttonState.pressed)        e.Handled = true;}private voID ColumnsReordered(object sender,NotifyCollectionChangedEventArgs e){    if (e.Action == NotifyCollectionChangedAction.Move)    {        var columns = sender as GrIDVIEwColumnCollection;        if (columns != null)            dispatcher.BeginInvoke((Action)(() => columns.Move(columns.IndexOf(FirstColumn.Column),0)));    }}
总结

以上是内存溢出为你收集整理的c# – 防止重新排序第一列全部内容,希望文章能够帮你解决c# – 防止重新排序第一列所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1229838.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存