datagrid怎么将焦点跑到指定的元素上

这个冬天有点冷灬 2014-01-02 08:09:30

如上图,我想做一个简单的查找,已经可以找到指定的行和列,怎么让焦点跑到指定的元素上啊,
用SelectedIndex已经可以跑到指定的行了。。。
...全文
74 点赞 收藏 7
写回复
7 条回复
这个冬天有点冷灬 2014年01月02日
引用 5 楼 wind_cloud2011 的回复:

 //第3行第2列对应的单元取得焦点
            DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);第                 DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);                 DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); //取第2列每行单元格                                 cell.Focus(); 
谢谢啊,根据你的方法,已经成功了!!
回复 点赞
wind_cloud2011 2014年01月02日
//第3行第2列对应的单元取得焦点 DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3); DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr); DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); cell.Focus();
回复 点赞
wind_cloud2011 2014年01月02日

 //第3行第2列对应的单元取得焦点
            DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(3);第                 DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);                 DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(2); //取第2列每行单元格                                 cell.Focus(); 
回复 点赞
wind_cloud2011 2014年01月02日
  int i = 0;
        private void button2_Click(object sender, RoutedEventArgs e)
        {
            //i取具体的值行
           DataGridRow dr = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(i);第
                DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(dr);
                DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(0); //取第0列每行单元格                
                cell.Focus();
                   }

   public static T GetVisualChild<T>(Visual parent) where T : Visual
        {
            T child = default(T);
            int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
            for (int i = 0; i < numVisuals; i++)
            {
                Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
                child = v as T;
                if (child == null)
                {
                    child = GetVisualChild<T>(v);
                }
                if (child != null)
                {
                    break;
                }
            }
            return child;
        }
回复 点赞
这个冬天有点冷灬 2014年01月02日
引用 2 楼 wind_cloud2011 的回复:
.IsSelected = true;
额,找了很久都不知道怎么设置这个属性,麻烦您能不能稍微写的清楚点。
回复 点赞
wind_cloud2011 2014年01月02日
.IsSelected = true;
回复 点赞
这个冬天有点冷灬 2014年01月02日
用的是wpf
回复 点赞
发动态
发帖子
C#
创建于2007-09-28

8.5w+

社区成员

64.0w+

社区内容

.NET技术 C#
社区公告
暂无公告