datagrid不可编辑行有关问题的控制方法(datagridview设置为可编辑的)干货分享

随心笔谈2年前发布 admin
198 0 0

文章摘要

文章介绍了如何通过WPF中的DataGrid实现行编辑功能,并重点讨论了两种解决方案。第一种方法较为复杂,通过Renderer监听点击事件,获取行列索引后调整DataGrid的editable属性,但需要处理多个事件和属性设置。第二种方法更简单,直接在DataGrid的itemEditBegin事件中判断当前行是否为第一行,如果是则阻止编辑操作,通过stopImmediatePropagation()方法实现。第二种方案在逻辑上更简洁,避免复杂的事件监听,代码量更少,且易于理解和维护。


——解决方案——————–

写renderer呗,renderer里可以拿到你点的这个cell是第几行和第几列,根据行列改变DataGrid的editable属性,给你一个思路:

1.renderer里监听点击事件;

2.事件处理函数中从listDatadata取出行列index,进行判断(哪一行可编辑这个变量可以通过创建renderer的时候用properties传到renderer中);

3.if(true),把listData.owner(或parentDocuemnt)的editable属性设为true,然后将光标放到点击的这个cell上(设editedItemPosition属性,怎么用自己去查);

4.监听DataGrid的itemEditEnd事件,事件处理函数中把editable函数在设为false

——解决方案——————–(已验证)

想到一个更简单的办法,editable=“true”,然后直接把itemEditBegin给停掉阻止createItemEditor的调用,

听DataGrid的itemEditBegin事件

复制代码 代码如下:

private function onItemEditBegin(event:DataGridEvent):void

{

if(event.rowIndex==0)//如果是第一行,则不让编辑

{

event.stopImmediatePropagation();

}

}

© 版权声明

相关文章