zoukankan      html  css  js  c++  java
  • DataGrid 显示选中的item

    Datagrid或者listview 中想要把相应的项 滚动到当前可见的位置, 必须满足2个条件:

    1) 必须去掉虚拟化
         VirtualizingStackPanel.IsVirtualizing ="False"


    2) 调用ScrollToView
           //Bring current selected item to view
                if(null != grdStudyList. SelectedItem && 0 != grdStudyList .Columns. Count)
                {
                    //first focus the grid
                    grdStudyList.Focus ();

                    //then create a new cell info, with the item we wish to edit and the column number of the cell we want in edit mode
                    DataGridCellInfo cellInfo = new DataGridCellInfo(grdStudyList .SelectedItem, grdStudyList.Columns [0]);

                    //set the cell to be the active one
                    grdStudyList.CurrentCell = cellInfo;

                    //scroll the item into view
                    grdStudyList.ScrollIntoView (grdStudyList. SelectedItem);    
                }         




    3)如果不去掉虚拟化, VirtualizingStackPanel.IsVirtualizing ="True"

    则, 调用如下语句:
      private void ScrollItemInSelector (Selector dtg, object needScrollItem)
            {
                //Bring current selected item to view
                if (null == dtg && null != needScrollItem )
                {
                    //first focus the grid
                    dtg.Focus ();

                    dtg.SelectedItem = needScrollItem;
                    dtg.Items .MoveCurrentTo( needScrollItem);

                    ScrollViewer scv = FindVisualChild< ScrollViewer>(dtg );
                    if (null != scv
                        && ( dtg.Items .CurrentPosition < scv.VerticalOffset - scv. ViewportHeight || dtg.Items .CurrentPosition > scv.VerticalOffset + scv. ViewportHeight)
                        )
                    {
                        scv.ScrollToVerticalOffset (dtg. Items.CurrentPosition );
                    }
                }
            }
      

  • 相关阅读:
    BorderContainer 背景透明一不小心就解决了!
    C#编程应用线程与委托
    第二次SQL RAP要点
    最近的学习
    BW中传输的问题
    7月总结Dotnetnuke的研究总结
    EP学习要点记忆
    盲人摸象SAP PS模块的介绍与讨论
    如何跨Client删除数据
    如何修改Portal与BW系统的链接域名
  • 原文地址:https://www.cnblogs.com/muzizongheng/p/3169431.html
Copyright © 2011-2022 走看看