wpf datagrid 遍历行

如果 DataGrid 中的行还未被加载,即 LoadingRow 事件未发生,那么针对此行的 GetCellContent() 是不可能得到东西的,只能为 null。

 下面两种语法,只是变相的形式而已。

    for (int i = 0; i < dgETL.Items.Count; i++)
            {
                CheckBox selectCheckBoxInCell = dgETL.Columns[0].GetCellContent(dgETL.Items[i]) as CheckBox;
                if (selectCheckBoxInCell != null)
                {
                    selectCheckBoxInCell.IsChecked = cbxOne.IsChecked;
                }
            }

            foreach (var item in dgETL.Items)
            {
                CheckBox selectCheckBoxInCell = dgETL.Columns[0].GetCellContent(item) as CheckBox;
                if (selectCheckBoxInCell != null)
                {
                    selectCheckBoxInCell.IsChecked = cbxOne.IsChecked;
                }
            }

 GridViewRow s = ((GridViewRow)PSFileDataGrid.ItemContainerGenerator.ContainerFromIndex(1));
            if (s != null)
            {
                Button sb = null;
                GridViewCellBase j =
                      (from c in s.Cells where c.Column.Name == "uid" select c).FirstOrDefault();
                if (j != null)
                {
                    sb = j.Template.FindName("button1", j) as Button;
                    sb.IsEnabled = false;
                }

            }


 

posted @ 2012-03-13 00:02  zhh  阅读(8428)  评论(2编辑  收藏  举报