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

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

  1. private void Dict_PrSCList_Load(object sender, RoutedEventArgs e)
  2. {
  3. BingData();
  4. BingComplete();
  5. }

//绑定数据

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

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

    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. //获取行 并转换为DataGridRow
    7. var cntr = udgList.ItemContainerGenerator.ContainerFromIndex(i);
    8. if (cntr == null)
    9. {
    10. udgList.UpdateLayout();
    11. //datagrid.ScrollIntoView(datagrid.Items[rowIndex]);
    12. cntr = (DataGridRow)udgList.ItemContainerGenerator.ContainerFromIndex(i);
    13. //cntr.IsSelected = true;
    14. }
    15. if (cntr == null) return;
    16. DataGridRow ObjROw = (DataGridRow)cntr;
    17. //定义列
    18. DataGridTemplateColumn templeColumn = udgList.Columns[0] as DataGridTemplateColumn;
    19. if(templeColumn == null) return;
    20. //object item;
    21. //item = udgList.CurrentCell.Item;
    22. //item = udgList.Columns[0].GetCellContent(ObjROw);
    23. //FrameworkElement element = templeColumn.GetCellContent(item);
    24. //获取单元格 通过列和行的交汇处 获取单元格
    25. FrameworkElement element = templeColumn.GetCellContent(ObjROw);
    26. if (element == null) return;
    27. //通过 Name获取该单元格下的button元素
    28. Button btnUpdateNum = templeColumn.CellTemplate.FindName("BTBJ", element) as Button;
    29. //设置其是否隐藏
    30. btnUpdateNum.Visibility = Visibility.Hidden;
    31. }
    32. }

wpf datagrid 中按钮 动态显示的更多相关文章

  1. 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色

    原文:在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色 在wpf datagrid中,想要根据一个条件来改变datagrid行的背景颜色 例如根据学生的年龄来修改,年龄 ...

  2. WPF DataGrid中鼠标双击某一列,弹出窗体作为(增加、修改、详细)按钮的快捷键。

    跟触发器行为有关,什么是触发器什么是行为,百度其他人写的乱七八糟的,我并不能看懂.在此先强行记忆,后知后觉,再回来理解. <i:Interaction.Triggers> <i:Ev ...

  3. WPF datagrid 列按钮使用

    原文:WPF中使用DataGrid时操作列按钮问题     <DataGrid x:Name="datagrid" AutoGenerateColumns="Fal ...

  4. WPF dataGrid中的check的改变事件

    关于datagrid信息: <DataGridTemplateColumn Header="备注"> <DataGridTemplateColumn.CellTe ...

  5. 编写 WPF DataGrid 列模板,实现更好的用户体验

    Julie Lerman 下载代码示例 最近我在为一个客户做一些 Windows Presentation Foundation (WPF) 方面的工作. 虽然我提倡使用第三方工具,但有时也会避免使用 ...

  6. wpf 获取datagrid中模板中控件

    //获取name为datagrid中第三列第一行模板的控件 FrameworkElement item = dataGrid.Columns[].GetCellContent(dataGrid.Ite ...

  7. 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH

    原文 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH 在项目中关于DataGrid的遇到过一些问题,其中是关于迁入CheckBox的双向 ...

  8. WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)

    原文:WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选) 前台代码 <DataGrid.Columns> <DataGridCheckB ...

  9. WPF备忘录(3)如何从 Datagrid 中获得单元格的内容与 使用值转换器进行绑定数据的转换IValueConverter

    一.如何从 Datagrid 中获得单元格的内容 DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. 但是,W ...

随机推荐

  1. Android 底部TabActivity(1)——FragmentActivity

    先看看效果图: 第一篇Tab系列的文章首先实现这样的风格的底部Tab:背景条颜色不变,我们是用了深灰的颜色,图标会发生对应的变化.当选中某个标签后该标签的背板会由正常的颜色变为不正常,哈哈,是变为加深 ...

  2. webDriver API——第15部分Expected conditions Support

    class selenium.webdriver.support.expected_conditions.alert_is_present Bases: object Expect an alert ...

  3. ES6 async 与 await 实战

    下面来说一说通过async和await方式来辅助请求和封装 首先我们定义一个类,定义一个async方法,才可以使用await class JForm extends React.Component { ...

  4. Vue 表单

    1.v-model v-model不再关心初始化的value值. <!DOCTYPE html> <html lang="zh"> <head> ...

  5. Tmux 的常用命令详解

    Tmux 的常用命令详解  常用命令: tmux #开启tmux tmux ls #显示已有tmux列表(C-b s) tmux attach-session -t 数字 #选择tmux C-b c ...

  6. java的日期格式使用

    转自:  关于java中六个时间类的使用和区别     java.util.Date java.sql.Date  java.sql.Time  java.sql.Timestamp java.tex ...

  7. oracle将一个表中字段的值赋值到另一个表中字段(批量)

    面积表中数据错误,现将面积表中的sfmj字段的值改为居民信息表中匹配字段的值 update (select s.name name1,s2.name name2 from simple s,simpl ...

  8. Linux top命令的图解使用

    Linux下的top命令的图解使用     linux下top命令参数解释     TOP命令详解

  9. js操作时间 加法 减法 计算 格式化时间

    Date.prototype.Format = function (fmt) { var o = { "M+": this.getMonth() + 1, //月份 "d ...

  10. int.TryParse非预期执行引发的思考

    问题出现 这天在写一个页面,想谨慎些就用了int.TryParse,结果出问题了. 代码如下: int id = 1000; //Request.QueryString["id"] ...