• wpf datagrid 中按钮 动态显示


    /若datagrid出现滚动条可能会出现问题需要加上下面俩句话。
    //因为出滚动条时,为了显示加速,datagrid会加载一部分数据。另一些数据当滚动时在加载进去 这样初始化获取不到这些数据。
    //在datagrid上添加上以下俩句话可以避免预加载数据,使数据全部加载出来
    EnableColumnVirtualization="False" EnableRowVirtualization="False"

            // 页面加载,数据初始化

    [csharp] view plain copy
     
    1. private void Dict_PrSCList_Load(object sender, RoutedEventArgs e)  
    2. {  
    3.     BingData();  
    4.     BingComplete();  
    5. }  



            //绑定数据

    [html] view plain copy
     
    1. private void BingData()  
    2.        {  
    3.            DataTable dt;  
    4.            dt = MngDBFuncWPF.listPrSCName();  
    5.   
    6.            lbCount.Content = "共找到 " + dt.Rows.Count + " 条符合条件的记录";  
    7.   
    8.            udgList.ItemsSource = dt.DefaultView;  
    9.   
    10.        }  



             //绑定数据后设置模板列中按钮显示和不显示
           

    [csharp] view plain copy
     
      1. private void BingComplete()  
      2.         {  
      3.          for (int i = 0; i < this.udgList.Items.Count; i++)  
      4.          {  
      5.             //int index = dataGrid.CurrentCell.Column.DisplayIndex;  
      6.   
      7.              //获取行 并转换为DataGridRow  
      8.              var cntr = udgList.ItemContainerGenerator.ContainerFromIndex(i);  
      9.            
      10.              if (cntr == null)  
      11.              {  
      12.                  udgList.UpdateLayout();  
      13.                  //datagrid.ScrollIntoView(datagrid.Items[rowIndex]);  
      14.                  cntr = (DataGridRow)udgList.ItemContainerGenerator.ContainerFromIndex(i);  
      15.                  //cntr.IsSelected = true;  
      16.              }  
      17.              if (cntr == null) return;  
      18.              DataGridRow ObjROw = (DataGridRow)cntr;  
      19.              //定义列  
      20.              DataGridTemplateColumn templeColumn = udgList.Columns[0] as DataGridTemplateColumn;  
      21.   
      22.              if(templeColumn == null) return;  
      23.              //object item;  
      24.              //item = udgList.CurrentCell.Item;  
      25.              //item = udgList.Columns[0].GetCellContent(ObjROw);  
      26.             //FrameworkElement element = templeColumn.GetCellContent(item);  
      27.   
      28.              //获取单元格 通过列和行的交汇处 获取单元格  
      29.             FrameworkElement element = templeColumn.GetCellContent(ObjROw);  
      30.             if (element == null) return;  
      31.              //通过 Name获取该单元格下的button元素  
      32.             Button btnUpdateNum = templeColumn.CellTemplate.FindName("BTBJ", element) as Button;  
      33.              //设置其是否隐藏  
      34.             btnUpdateNum.Visibility = Visibility.Hidden;  
      35.          }  
      36.         }  
  • 相关阅读:
    时寒冰先生文章转载
    [转]迭代经理是什么角色
    [转]如何抉择重构?
    面面俱到:SQL SERVER 2008主数据管理
    [转]用户故事【任务分解】和软件开发不得不说的故事
    读书心得3:去功利化&推荐两本书 转时寒冰
    沟通模式中的方式与过程
    系统分析与设计笔记 -系统类型
    加入敏捷团队宣言
    [转]敏捷进展学习 新项目Sprint
  • 原文地址:https://www.cnblogs.com/sjqq/p/8454540.html
Copyright © 2020-2023  润新知