遍历WPF DataGrid单元格

  • using System.Windows.Controls;
  • using System.Windows.Controls.Primitives;
  • using System.Windows.Media;
  • namespace Splash.WPF
  • {
  • public static class DataGridPlus
  • {
  • /// <summary>
  • /// 获取DataGrid控件单元格
  • /// </summary>
  • /// <param name="dataGrid">DataGrid控件</param>
  • /// <param name="rowIndex">单元格所在的行号</param>
  • /// <param name="columnIndex">单元格所在的列号</param>
  • /// <returns>指定的单元格</returns>
  • public static DataGridCell GetCell(this DataGrid dataGrid, int rowIndex, int columnIndex)
  • {
  • DataGridRow rowContainer = dataGrid.GetRow(rowIndex);
  • if (rowContainer != null)
  • {
  • DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(rowContainer);
  • DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
  • if (cell == null)
  • {
  • dataGrid.ScrollIntoView(rowContainer, dataGrid.Columns[columnIndex]);
  • cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
  • }
  • return cell;
  • }
  • return null;
  • }
  • /// <summary>
  • /// 获取DataGrid的行
  • /// </summary>
  • /// <param name="dataGrid">DataGrid控件</param>
  • /// <param name="rowIndex">DataGrid行号</param>
  • /// <returns>指定的行号</returns>
  • public static DataGridRow GetRow(this DataGrid dataGrid, int rowIndex)
  • {
  • DataGridRow rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
  • if (rowContainer == null)
  • {
  • dataGrid.UpdateLayout();
  • dataGrid.ScrollIntoView(dataGrid.Items[rowIndex]);
  • rowContainer = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
  • }
  • return rowContainer;
  • }
  • /// <summary>
  • /// 获取父可视对象中第一个指定类型的子可视对象
  • /// </summary>
  • /// <typeparam name="T">可视对象类型</typeparam>
  • /// <param name="parent">父可视对象</param>
  • /// <returns>第一个指定类型的子可视对象</returns>
  • public static T GetVisualChild<T>(Visual parent) where T : Visual
  • {
  • T child = default(T);
  • int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
  • for (int i = 0; i < numVisuals; i++)
  • {
  • Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
  • child = v as T;
  • if (child == null)
  • {
  • child = GetVisualChild<T>(v);
  • }
  • if (child != null)
  • {
  • break;
  • }
  • }
  • return child;
  • }
  • }
  • }

遍历WPF DataGrid单元格,布布扣,bubuko.com

时间: 2024-10-14 04:33:05

遍历WPF DataGrid单元格的相关文章

获取wpf datagrid单元格编辑事件

DataGrid标签中加 <i:Interaction.Triggers> <i:EventTrigger EventName="CellEditEnding" > <i:InvokeCommandAction Command="{Binding CellEditEndingCommand}" CommandParameter="{Binding ElementName=DataGrid1}" /> </

JQuery easyui datagrid 单元格编辑时,使用浮动的textarea文本框并进行数据校验

有两种方式实现,一种方式是在html中验证,一种方式是在js中进行验证 方式一: <th data-options="filed:'remark',width:200,editor:{type:'textarea'}">备注</th> 方式二: <th data-options="filed:'remark',width:200,editor:{type:'textarea', options:{validType:'maxLength[150]

Easyui datagrid 单元格格式化函数formatter的使用

$('#dg').datagrid({ columns:[[ {field:'userId',title:'User', width:80, formatter: function(value,row,index){ if (row.user){ return row.user.name; } else { return value; } } } ]] }); 以上是通过JS来进行调用 单元格格式化函数formatter带三个参数: value:单元格的字段值 rowData:该单元格所在行的行

DevExpress控件 DataGrid 单元格编辑 回车

using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using CYSoft.UI.Common; using CYSoft.Common; using CYSoft.TS.Entit

poi 读取word 遍历表格和单元格中的图片

背景 项目需要解析word表格 需要批量导入系统,并保存每行信息到数据库 并且要保存word中的图片, 并保持每条信息和图片的对应关系 一行数据可能有多条图片 解决办法 没有找到现成的代码,怎么办呐?看源码吧 分享快乐 给出代码 package com.util; import org.apache.poi.xwpf.usermodel.*; import org.jeecgframework.core.common.model.json.AjaxJson; import org.jeecgfr

easyui datagrid 单元格编辑 即见即所得,MVC菜单维护,扫描增加

效果如图: 参见 EasyUI 官方 Demo 及文档 @{ ViewBag.Title = "Index"; Layout = "~/Views/Shared/_Layout.cshtml"; } <script src="~/jquery-easyui-1.4.2/locale/easyui-lang-zh_CN.js"></script> <table id="datagrid" class

easyui datagrid 单元格编辑保存

要求分数和排序两列能编辑 //查询该试卷题型的试题 $('#allList1').datagrid({ url:app.approot+"paperRes/getPaperQuestionList/"+ptyid, handler:function(){ //接受改变的值 $('#allList1').datagrid('acceptChanges'); }, onBeforeEdit: function (rowIndex,rowData) { $("#selQuestio

easyui datagrid 单元格编辑 自动聚焦 、全选

$.extend($.fn.datagrid.methods, { editCell: function (jq, param) { return jq.each(function () { var opts = $(this).datagrid('options'); var fields = $(this).datagrid('getColumnFields', true).concat($(this).datagrid('getColumnFields')); for (var i = 0

DataGrid 单元格输入验证 由ValidatingEditor事件完成

private void gdv_reguline_ValidatingEditor(object sender, DevExpress.XtraEditors.Controls.BaseContainerValidateEditorEventArgs e)        {            int col = ((DevExpress.XtraGrid.Views.Grid.GridView)sender).FocusedColumn.AbsoluteIndex;