首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

编辑DataGrid行中的其他单元格后,更新其中的其他单元格

在编辑DataGrid行中的其他单元格后,更新其中的其他单元格,可以通过以下步骤实现:

  1. 首先,确保你已经正确地绑定了DataGrid控件与数据源。这可以通过设置DataGrid的ItemsSource属性来完成,将其绑定到一个包含数据的集合。
  2. 当用户编辑DataGrid中的某个单元格时,可以通过监听DataGrid的CellEditEnding事件来捕获编辑结束的事件。
  3. 在CellEditEnding事件处理程序中,可以获取到正在编辑的单元格的行和列的索引。通过这些索引,可以获取到其他需要更新的单元格的位置。
  4. 根据需要更新的单元格的位置,可以使用DataGrid的Items属性来获取到对应的行数据对象。
  5. 通过行数据对象,可以获取到其他需要更新的单元格的值,并进行相应的更新操作。

以下是一个示例代码,演示了如何在编辑DataGrid行中的其他单元格后,更新其中的其他单元格:

代码语言:txt
复制
private void DataGrid_CellEditEnding(object sender, DataGridCellEditEndingEventArgs e)
{
    DataGrid dataGrid = (DataGrid)sender;
    DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(dataGrid.SelectedIndex);
    
    // 获取正在编辑的单元格的行和列索引
    int editedRowIndex = dataGrid.SelectedIndex;
    int editedColumnIndex = dataGrid.CurrentCell.Column.DisplayIndex;
    
    // 获取其他需要更新的单元格的位置
    int otherColumnIndex = 0; // 假设需要更新的单元格在第一列
    
    // 获取行数据对象
    YourDataObject rowData = (YourDataObject)row.Item;
    
    // 获取其他需要更新的单元格的值
    string otherCellValue = rowData.OtherColumnValue;
    
    // 更新其他单元格的值
    DataGridCell otherCell = GetCell(dataGrid, row, otherColumnIndex);
    if (otherCell != null)
    {
        TextBlock textBlock = otherCell.Content as TextBlock;
        if (textBlock != null)
        {
            textBlock.Text = otherCellValue;
        }
    }
}

private DataGridCell GetCell(DataGrid dataGrid, DataGridRow row, int columnIndex)
{
    if (row != null)
    {
        DataGridCellsPresenter presenter = GetVisualChild<DataGridCellsPresenter>(row);
        if (presenter != null)
        {
            DataGridCell cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
            if (cell == null)
            {
                dataGrid.ScrollIntoView(row, dataGrid.Columns[columnIndex]);
                cell = (DataGridCell)presenter.ItemContainerGenerator.ContainerFromIndex(columnIndex);
            }
            return cell;
        }
    }
    return null;
}

private childItem GetVisualChild<childItem>(DependencyObject obj) where childItem : DependencyObject
{
    int childrenCount = VisualTreeHelper.GetChildrenCount(obj);
    for (int i = 0; i < childrenCount; i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(obj, i);
        if (child != null && child is childItem)
        {
            return (childItem)child;
        }
        else
        {
            childItem childOfChild = GetVisualChild<childItem>(child);
            if (childOfChild != null)
            {
                return childOfChild;
            }
        }
    }
    return null;
}

这是一个简单的示例,你可以根据实际需求进行修改和扩展。在实际开发中,你可能需要根据具体的数据结构和业务逻辑进行相应的处理和更新操作。

对于DataGrid的其他单元格更新,你可以根据具体的需求来选择合适的方式,例如直接更新数据源、通过绑定更新、或者使用命令模式等。腾讯云提供了一系列云计算产品,例如云数据库、云服务器、云原生应用引擎等,可以根据具体的需求选择适合的产品来支持你的应用。你可以访问腾讯云官方网站(https://cloud.tencent.com/)了解更多相关产品和服务的详细信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

开发和测试中遇到的其他问题(持续更新)

1.postman进行参数传值的时候不要在value中加引号了 第一次用posman分析了好久就是没搞懂咋sql直接执行没问题.传值就报错了,奇了怪哉~ 2.mybatis中foreach便利集合进行拼接时候使用了自定义名字...,但是dao层忘了指出自定义名称 案例 因为xml中foreach对于collection默认集合名称为list,只有我们在dao层传入时候指定参数名才可以使用自定义名....小结一下啥时候用@param指定参数名称 1.动态sql中时候(包括test if这样的) 2.多个参数 3.取别名 4.映射sql中 使用进行取值(其实和刚刚我们的 默认指定 一样,这里默认用...乱码问题解决 new String(Base64.decodeBase64("要解析的str"), "要转换为的识别码"); new String(Base64.decodeBase64("要解析的str...如果我们limit6,6可能还会出现前6条中的数据,这是为什么呢?

1.1K30

问与答98:如何根据单元格中的值动态隐藏指定的行?

excelperfect Q:我有一个工作表,在单元格B1中输入有数值,我想根据这个数值动态隐藏行2至行100。...具体地说,就是在工作表中放置一个命令按钮,如果单元格B1中的数值是10时,当我单击这个命令按钮时,会显示前10行,即第2行至第11行;再次单击该按钮后,隐藏全部的行,即第2行至第100行;再单击该按钮,...则又会显示第2行至第11行,又单击该按钮,隐藏第2行至第100行……也就是说,通过单击该按钮,重复显示第2行至第11行与隐藏第2行至第100行的操作。...注:这是在chandoo.org的论坛上看到的一个贴子,有点意思。...A:使用的VBA代码如下: Public b As Boolean Sub HideUnhide() If b =False Then Rows("2:100").Hidden

6.4K10
  • Excel实用公式6:求每隔n行中的单元格之和

    学习Excel技术,关注微信公众号: excelperfect 很多时候,我们都可能想要对每隔n行中的单元格求和,其中n是一个整数。如下图1所示,每隔1行求和、每隔2行求和、每隔3行求和,等等。 ?...图1 从图1的示例可知,如果我们每隔1行求和,有求奇数行或者偶数行的单元格之和两种情况,其中,奇数行求和的数组公式为: =SUM(IF(MOD(ROW($A$1:$A$15),2)=1,$A$1:$A$15,0...)) 偶数行求和的数组公式为: =SUM(IF(MOD(ROW($A$1:$A$15),2)=0,$A$1:$A$15,0)) 注意,本文中的公式都是数组公式,也就是说,在公式输入完成后要按Ctrl+Shift...对于每隔2行求和,即求第1、4、7、10、13行中单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),3)=1,$A$1:$A$15,0)) 对于每隔3行求和,即求第1、...5、9、13行中的单元格之和,使用数组公式: =SUM(IF(MOD(ROW($A$1:$A$15),4)=1,$A$1:$A$15,0)) 我们可以得到一个规律,对于每隔n行求和(n>1),其一般公式

    4.4K40

    android中webview的加载速度影响其他的控件更新问题

    在android中当界面比较复杂的时候 我们一般采用webview来解决问题,避免写很多复杂的布局 这个也叫作混合布局吧,但是一个问题就是webview利用的是系统的浏览器,导致的问题主要是网络速度 当网速快的时候还好...,不是特别明显  当网络慢的时候就麻烦了 其他的控件都加载完了,webview还没有加载完,阿西吧啊 怎么办呢,所以在布局的时候要注意了,尽量先显示webview的内容,安排的合理些,否则就放弃这种布局...然后把其他的控件更新放在webview完成事件里面: @SuppressLint("SetJavaScriptEnabled") private void initWebView() { //...=0){ //页面下载完毕,不代表页面渲染完毕,如果要加入进度条,请在这里设置 new GetWzCommentTask().execute();//加载的评论信息 }...,如果有进度条 当完成的时候就把进度条消失,这里先只做提示处理 super.onProgressChanged(view, newProgress); } }); }

    98420

    【愚公系列】2023年10月 WPF控件专题 DataGrid控件详解

    一、DataGrid控件详解WPF中的DataGrid是一个非常强大和灵活的控件,它可用于展示和编辑数据。...CancelEdit():取消当前单元格的编辑状态。CommitEdit():提交当前单元格的编辑状态。CancelEdit():取消当前单元格的编辑状态。Sort():对数据进行排序。...DataGrid还有许多其他的属性和方法,可以根据需求进行使用。1.属性介绍WPF中DataGrid控件的常见属性如下:AutoGenerateColumns:是否自动生成列,默认为true。...数据编辑:DataGrid控件可以支持数据的编辑,包括单元格编辑、行编辑和列编辑等方式,方便用户对数据进行修改和更新。...数据导入导出:DataGrid控件可以支持数据的导入和导出,可以将数据快速地导入到DataGrid中进行展示,也可以将DataGrid中的数据导出到其他文件格式中,方便数据的共享和使用。

    1.2K00

    jQuery EasyUI 详解

    undefined formatter function 单元格的格式化函数,需要三个参数:value: 字段的值。rowData: 行的记录数据。 rowIndex: 行的索引。...onAfterRender target 视图被呈现后触发。 事件 其事件扩展自 panel,下列是为 datagrid 增加的事件。...rowIndex, rowData, changes 当用户完成编辑一行时触发,参数包括: rowIndex:编辑行的索引,从 0 开始rowData:编辑行对应的记录changes:更改的字段/值对...endEdit index 结束对一行进行编辑。 cancelEdit index 取消对一行进行编辑。 getEditors index 获取指定行的编辑器们。...validateRow index 验证指定的行,有效时返回 true。 updateRow param 更新指定的行, param 参数包含下列特性:index:更新行的索引。row:行的新数据。

    9.2K10

    常见 Datagrid 错误

    因为 Datagrid 是由多个行(项目)组成的,所以数据源中的每一行实际都会有一个单独的“MyTextBox”实例。...忘记在每个 Datagrid 事件中执行 .DataBind() 调用,从而导致回发 一个常见的问题是:“当我点击 Datagrid 某一行中的 Edit(编辑)链接时,页面回发,且不包含任何数据。...例如,有时需要在选择其他页面选项后,才能在运行时确定用户界面。或是要创建一个复合服务器控件,其中的每个子控件都需要动态创建,因为无法以声明的方式创建这些子控件。...但如果禁用 ViewState,该步骤是必需的,这样在执行 Page_Load 后可以正确地引发其他 Datagrid 事件。...添加单元格到 Datagrid 的表格输出时,这些事件可以用于控制每个单元格的外观或内容。例如,可以基于数值的范围修改单元格的背景颜色。

    2.4K20

    C#二十八 数据绑定

    控件进窗体设计区域即可创建一个DataGrid控件对象。...:可以设置控件填充父容器的方式 l ReadOnly属性:设置控件是否可编辑,设置false后,控件将不可编辑 l RowHeaderVisible属性:列标题是否显示,默认情况下显示列标题...你可以像获取数据表数据那样获取DataGridView控件中任意一个单元格的数据,因为DataGridView控件中表示行的集合也是Rows,在每一行对象(DataGridViewRow对象)中又有一个...(); } DataGridView控件提供了CurrentCellAddress属性来获得选中单元格的列表和行标,如下代码修改DataGridView中选中的单元格中对应表中项的值: privatevoid...[x].Cells[y].Value.ToString());// //修改此单元格对应的数据表中项的值 dt.Rows[x][y]=”修改值”; //更新到数据库 adapter.Update

    11110

    OEA 中 WPF 树型表格虚拟化设计方案

    假设只有 30 行,一个单元格仅生成 5 个可视元素,200 列的单元格都会产生 3W 个可视元素,而布局系统的 Measure 方法需要对可视树中的每一个元素都调用其对应的 Measure 方法,可以想象...也就是说,TreeGrid 作为一个 ItemsControl,其中的所有单元格 TreeGridCell 都必须作为它的逻辑子容器。这样的设计虽然实现了界面虚拟化,但是并不可取。...这是因为,开发人员对于 TreeGrid 的常见用法应该是:TreeGrid 中的每一项是一个表格行 TreeGridRow,而 TreeGridRow 又是一个 ItemsControl,行中其中的每一项才是横向排列的单元格...由于每一个行的 DataContext,也应该是每一个单元格的 DataContext,所以 DataGridCellsPresenter.ItemsSource 应该被设置为一个数据模型对象列表,其中每一个元素都是...图3 TreeGrid 虚拟化后的可视树元素     由于每一列的单元格都是随着拖动横向滚动条而生成的,所以在拖动时有一定的延迟,没有原来感觉流畅。所以当列数较少时,则没有必要打开列虚拟化。

    2.7K70

    C# WPF DataGrid获取单元格并改变背景色

    01 概述 WPF 自带了一个表格控件datagrid,这个控件类似winfrom中的datagridview,在数据显示的时候也经常会用到,这节主要讲解如何从后台代码获取到单元格控件并改变其相关属性:...DataGridCellsPresenter presenter = GetVisualChild(row);//函数调用,获取行中所有单元格的集合...> DataGrid> 04 解析 ① 因为我需要绑定SelectedCellsChanged事件,所以前台将默认的行选中模式修改为单元格选中模式: SelectionMode="...Single" SelectionUnit="Cell" 这样修改后SelectionChanged这个事件将不再触发(只有在行选中模式下生效); ②获取选中单元格的值: var info = this.dgSourceData.SelectedCells.FirstOrDefault...;//获取选中单元格行号 在当SelectionUnit="Cell"时: 我是通过选中单元格对应行的信息和表格控件绑定的集合匹配获取行号的: for (int i = 0; i < ShellViewModel.StudentList.Count

    2.8K20

    Windows Community Toolkit 4.0 - DataGrid - Part03

    而在本篇,我们会对控件中最重要的 DataGrid 文件夹中的类做详细的分享。...接着我们看几个重要的类和方法: 1. DataGrid.cs 这个类是 DataGrid 控件的主要处理类,功能也是比较复杂,单个类的代码行数是 9001 行,我们只挑两个方法来看一下。...其他方法大家有兴趣或用到时可以在 DataGrid.cs 中查阅。...1) DataGrid() 首先看一下 DataGrid 类的构造方法,之所以看这个方法,是想让大家可以更了解 DataGrid 类中变量的初始化方式,这些变量在不同的交互场景下会被赋予不同的值。...接下来我们会就 DataGrid 控件的各种编辑功能,各种自定义功能等做进一步的使用方式的分享。

    58520

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

    一、如何从 Datagrid 中获得单元格的内容    DataGrid 属于一种 ItemsControl, 因此,它有 Items 属性并且用ItemContainer 封装它的 items. ...但是,WPF中的DataGrid 不同于Windows Forms中的 DataGridView。 ...在DataGrid的Items集合中,DataGridRow 是一个Item,但是,它里面的单元格却是被封装在 DataGridCellsPresenter 的容器中;因此,我们不能使用 像DataGridView.Rows.Cells...这样的语句去获得单元格的内容。...IValueConverter  有的时候,我们想让绑定的数据以其他的格式显示出来,或者转换成其他的类型,我们可以 使用值转换器来实现.比如我数据中保存了一个文件的路径”c:\abc\abc.exe”

    5.6K70

    day51_BOS项目_03

    2.1、基础档案设置 功能概述:     在其他的系统中通常称为“数据字典”。`提供基础数据,供其他模块使用`。     ...的使用方式 数据网格(datagrid)以表格格式显示数据,并为选择、排序、分组和编辑数据提供了丰富的支持。...数据网格(datagrid)的设计目的是为了减少开发时间,且不要求开发人员具备指定的知识。它是轻量级的,但是功能丰富。它的特性包括单元格合并,多列页眉,冻结列和页脚,等等。...5、基于datagrid实现取派员分页查询 第一步:修改staff.jsp页面中datagrid的URL地址,访问action     // 取派员信息表格     $('#grid').datagrid... 列(Column)属性中,单元格的格式化函数:formatter     // 定义列     var columns = [ [ {         field : 'id',

    3.4K10

    如何快速实现多人协同编辑?

    A用户正在编辑时,B用户在上方插入了一行,此时A编辑的单元格也要下移,而不是保留在原位; 3....当客户端有用户开始编辑时,向服务端发送消息, 而服务端需要维护一个数组,记录所有当前正在被编辑的单元格信息,并向所有客户端同步 其他客户端收到消息后,用户如果要编辑此单元格,则禁止用户进入编辑状态...当然,用户可能希望看到有哪些人正在编辑哪些单元格,类似于这种效果: 这里是用自定义单元格的方案实现的: 这个功能算是初步实现了,但是考虑一下这种情况:如果你正在编辑时,其他用户在上方插入了一行呢?...Lily本来正在编辑A2,Alen在上方插入一行后,Lily应该编辑的是A3,但是以我们目前的实现方式,Lily编辑的仍然是A2。对应的,在上方删除行、在左侧插入删除列都会有同样的问题。...这里Lily和Alen两个人都会受到影响,Lily编辑的单元格应该移动,Alen被锁定的单元格也应该移动,而Alen这边比较简单,服务端根据插入行列更新锁定单元格信息就好,Lily这边则麻烦一些,需要记录下

    37220

    C# WPF DataGrid下面 使用CheckBox 选中事件

    控件文件中 第一种方式:在对应的铯中实现 格子 数据网格名称='DG1 '网格Row='5 '网格column span=' 4 ' items source=' { Binding my list,.../数据网格模板列.单元格模板/数据网格模板列 datagrid文本列宽=' 250 '是readonly=' true '单元格样式=' { static resource NoBoundaryDataGridCell...} ' Header='其他测试Binding='{Binding ExpiryDate,Mode=TwoWay}'//DataGrid .列 数据网格 对应的特许测量员文件中事件 private void...foreach(我的列表中的变量临时签证 selectItem.isEnable=false ....//这里是拿到我的列表类中的属性属性即上面标记语言中检验盒中绑定的变量 } } } 第二种实现:MVVM结构 Da taGridTemplateColumn .HeaderTemplate数据模板复选框为

    2.9K40

    GridView隐藏列取值解决方案

    这一功能在DataGrid时代几乎是必须的,在对列表进行批量选中操作时非常有用(比如批量删除),隐藏列通常用于存储DataGrid行对应数据记录的关键字的值,而现在在GridView中却行不通,着实令一大批人头疼不已...就事论事,回到标题,现提供我对这个问题的解决方案,基本思想仍然是用css使得单元格不可见,而不妨碍它的数据绑定,但我的方法却不需要在cs文件中多加一行代码,其思路如下: (1)设置一个css类:  ....hidden { display:none;} 在web标准横行的现在,我想为每个aspx链接一个common.css是基本的素质,呵呵 (2)随后在GridView的列编辑对话框中,对需要进行隐藏的列进行设置...是的,在DataGrid中,要实现这个功能,隐藏列来存储键值是必须的,甚至是一个初学者需要摸索才能知道的技巧。然而现在GridView是用来替代DataGrid的,微软所作的考虑更加周全。...针对DataGrid无法提供行主键的问题,它提供了两个全新的属性:DataKeys和DataKeyNames!

    1.5K30
    领券