除非我在这里遗漏了一些明显的东西,否则无法在DataGrid中解除一行或多行.我期望DataGrid或List组件上的disabledRows或disabledRowIndidices属性,但似乎不存在.
我找到了一个"rendererArray"属性,该属性的作用域为mx_internal,并包含datagrid中所有单元格的所有itemrenderers.所以我可以检查渲染器内部数据的类型和值,并启用或禁用同一行的所有单元格,但这感觉太像黑客了.
有什么建议?
编辑:我意识到禁用一行可能意味着不同的事情.就我而言,即使datagrid的editable属性设置为true,也意味着无法编辑行.然而,它也可能意味着无法选择一行,但这不是我正在寻找的.
为此,您需要该行的一些数据来表示它是不可编辑的.然后当"itemEditBeginning"然后检查数据或行索引以启用/禁用event.preventDefault的默认行为...
public function preventEditing(event:DataGridEvent):void { var status : Boolean = ArrayObjs[rowIndex].isYourCondition; if (status == true) { event.preventDefault(); } }
另一个选项是为您的数据单元格创建一个自定义ItemRenderer,但不要认为这是您想要的,因为您需要为每个单元格创建它.