转:wpf 中获取datagrid 某一行的值 某一列的值 某一行中某一列单元格的值
2013-01-17 18:31
459 查看
public static void SetDataGridCellIsEnabled(DataGrid datagrid, int rowIndex, int[] cellIndexArray, bool IsEnabled) { for (int index = 0; index < cellIndexArray.Length; index++) { DataGridCell currentCell = GetDataGridCell(datagrid, rowIndex, cellIndexArray[index]); if (currentCell != null) { currentCell.IsEnabled = IsEnabled;
这行代码是隐藏单元格
Button button1= currentCell.ChildrenOfType<Button>();
这行代码是得到模板控件里的子控件 } } }
public static DataGridCell GetDataGridCell(DataGrid datagrid, int rowIndex, int columnIndex) { try { DataGridRow rowContainer = GetDataGridRow(datagrid, rowIndex); if (rowContainer != null) { DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
这行代码是通过行得到单元格
DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
这行代码是通过index得到具体的单元格
if (cell == null) { datagrid.ScrollIntoView(rowContainer, datagrid.Columns[columnIndex]); cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex); }
return cell; } } catch { return null; } return new DataGridCell(); }
public static DataGridRow GetDataGridRow(DataGrid datagrid, int rowIndex) { DataGridRow row = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
这行代码的作用是得到datagrid的一行
if (row == null) { datagrid.UpdateLayout(); //datagrid.ScrollIntoView(datagrid.Items[rowIndex]); row = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromIndex(rowIndex); } return row; }
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; }
这行代码是隐藏单元格
Button button1= currentCell.ChildrenOfType<Button>();
这行代码是得到模板控件里的子控件 } } }
public static DataGridCell GetDataGridCell(DataGrid datagrid, int rowIndex, int columnIndex) { try { DataGridRow rowContainer = GetDataGridRow(datagrid, rowIndex); if (rowContainer != null) { DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
这行代码是通过行得到单元格
DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
这行代码是通过index得到具体的单元格
if (cell == null) { datagrid.ScrollIntoView(rowContainer, datagrid.Columns[columnIndex]); cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex); }
return cell; } } catch { return null; } return new DataGridCell(); }
public static DataGridRow GetDataGridRow(DataGrid datagrid, int rowIndex) { DataGridRow row = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
这行代码的作用是得到datagrid的一行
if (row == null) { datagrid.UpdateLayout(); //datagrid.ScrollIntoView(datagrid.Items[rowIndex]); row = (DataGridRow)datagrid.ItemContainerGenerator.ContainerFromIndex(rowIndex); } return row; }
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; }
相关文章推荐
- 获取wpf datagrid当前被编辑单元格的内容
- WPF DataGrid 获取选中 一行 或者 多行
- 获取wpf datagrid当前被编辑单元格的内容
- WPF DataGrid 获取选中 一行 或者 多行
- WPF之DataGrid获取特定单元格值以及将一列之值相加、乘等
- WPF:获取DataGrid控件单元格DataGridCell
- WPF之DataGrid获取特定单元格值以及将一列之值相加、乘等
- WPF:获取DataGrid控件单元格DataGridCell
- WPF:获取DataGrid控件单元格DataGridCell
- 获取wpf datagrid当前被编辑单元格的内容
- WPF:获取DataGrid控件单元格DataGridCell
- 获取wpf datagrid当前被编辑单元格的内容
- 真正VC++.net笔记2--dataGrid单元格值的获取
- web开发学习笔记(4):js获取table的行数和表格中某一行某一列的内容
- 关于jqgrid获取某一行某一列的值
- WPF:后台获取DataGrid列的绑定字段。
- WPF学习笔记——编辑DataGrid单元格并实时更新到数据库
- WPF DataGrid 获取当前行某列值
- 如何实现选择DataGrid单元格时显示选择一行
- 在datagrid里面怎么把一列的显示的内容改变和数据库里不一样?比如:数据库里存的是1和0,而datagrid里某一列显示出来是“完成”或“未完成”。如果在datagrid里面这一列输入“完成”,则在数据库里存的是1。