• c# WPF DataGrid 获取选中单元格信息


     private void Dg_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
            {
                Console.WriteLine("start");
                foreach (DataGridCellInfo info in dg.SelectedCells)
                {
                    FrameworkElement element = info.Column.GetCellContent(info.Item);
                    string str = ((TextBlock)info.Column.GetCellContent(info.Item)).Text;
                    Console.WriteLine(str);
                }
            }
     private void Button_Click(object sender, RoutedEventArgs e)
            {
                DataGridCellInfo info = new DataGridCellInfo(dg.Items[0], dg.Columns[2]);
                Console.WriteLine("start");
                FrameworkElement element = info.Column.GetCellContent(info.Item);
                string str = ((TextBlock)info.Column.GetCellContent(info.Item)).Text;
                Console.WriteLine(str);
             
            }
       private void Button_Click(object sender, RoutedEventArgs e)
            {
                DataGridCell cell = dg.GetCell(1, 2);
                TextBlock tb = cell.Content as TextBlock;
                Console.WriteLine(tb.Text);
            }
    
        public static class DataGridExtension
        {
            /// <summary>
            /// 获取DataGrid控件单元格
            /// </summary>
            /// <param name="dataGrid">DataGrid控件</param>
            /// <param name="rowIndex">单元格所在的行号</param>
            /// <param name="columnIndex">单元格所在的列号</param>
            /// <returns>指定的单元格</returns>
            public static DataGridCell GetCell(this DataGrid dataGrid, int rowIndex, int columnIndex)
            {
                DataGridRow rowContainer = dataGrid.GetRow(rowIndex);
                if (rowContainer != null)
                {
                    DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
                    DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
                    if (cell == null)
                    {
                        dataGrid.ScrollIntoView(rowContainer, dataGrid.Columns[columnIndex]);
                        cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
                    }
                    return cell;
                }
                return null;
            }
    
            /// <summary>
            /// 获取DataGrid的行
            /// </summary>
            /// <param name="dataGrid">DataGrid控件</param>
            /// <param name="rowIndex">DataGrid行号</param>
            /// <returns>指定的行号</returns>
            public static DataGridRow GetRow(this DataGrid dataGrid, int rowIndex)
            {
                DataGridRow rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
                if (rowContainer == null)
                {
                    dataGrid.UpdateLayout();
                    dataGrid.ScrollIntoView(dataGrid.Items[rowIndex]);
                    rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
                }
                return rowContainer;
            }
    
            /// <summary>
            /// 获取父可视对象中第一个指定类型的子可视对象
            /// </summary>
            /// <typeparam name="T">可视对象类型</typeparam>
            /// <param name="parent">父可视对象</param>
            /// <returns>第一个指定类型的子可视对象</returns>
            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;
            }
        }
  • 相关阅读:
    笔记7-7
    输出九九乘法表
    eclipse配置Maven——菜鸟篇
    IOC和AOP使用扩展之AOP详解实现类
    --------Hibernate框架之双向多对多关系映射
    易买网----------有感
    有关于TreeSet的自我理解
    爱学习当当网----图片的切换,书栏的循环滚动
    有关于购物车买买买?剁手吧
    致童年,一生都无法忘记的技能
  • 原文地址:https://www.cnblogs.com/aitong/p/11858618.html
Copyright © 2020-2023  润新知