Advertisement

问题与解决方案:WPF DataGrid获取单元格所在行列索引

阅读量:

问题 :需要实现一个区域选择的功能,具体要求是对DataGrid控件中的某一行进行操作,能够选择其中的若干列(DataGridCheckBoxColumn)。在实现过程中遇到了困惑,即如何准确获取行和列的具体数量。虽然WPF中提供了Columns属性,但并未提供单独用于获取行数的Rows属性。

解决方法: 可以通过引入可视化树的相关概念,并结合ItemContainerGenerator.ContainerFromIndex(int)这一方法,来定位并获取对应的单元格信息,具体实现方式可参考提供的代码示例

复制代码
 //   从可视化树中获取到需要的子控件

    
 private T GetVisualChild<T>(DependencyObject 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(par

全部评论 (0)

还没有任何评论哟~