文章摘要
文章介绍了如何通过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();
}
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。