DataGrid 如何得到DataGridRow 和DataGridCell 对象

第一行为不可编辑
  DataGridRow row = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(0);
             if  (row ==  null )
             {
                 dataGrid1.UpdateLayout();
                 row = (DataGridRow)dataGrid1.ItemContainerGenerator.ContainerFromIndex(0);
                 
          }
          row.IsEnabled =  false ;
         public  static  T GetVisualChild<T>(Visual parent) where T : Visual
         {
             T childContent =  default (T);
             int  numVisuals = VisualTreeHelper.GetChildrenCount(parent);
             for  ( int  i = 0; i < numVisuals; i++)
             {
                 Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
                 childContent = v  as  T;
                 if  (childContent ==  null )
                 {
                     childContent = GetVisualChild<T>(v);
                 }
                 if  (childContent !=  null )
                 {
                     break ;
                 }
             }
             return  childContent;
         }
  
  
//第二行第一列不可编辑
                  DataGridRow rowContainer = GetDataGridRow(dataGrid1, 1);
  
                 if  (rowContainer !=  null )
                 {
                     DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
                     DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(1);
                     if  (cell ==  null )
                     {
                         dataGrid1.ScrollIntoView(rowContainer, dataGrid1.Columns[0]);
                         cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(0);
                        
                     }
  
                     cell.IsEnabled =  false ;
                 }

转载于:https://www.cnblogs.com/qq247039968/p/4567266.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值