扩展 DataGridColumn 并指定 paddingLeft
我正在尝试扩展 DataGridColumn,并在扩展类中尝试
指定 paddingLeft 的值,但我无法编译它。
使用 Flex Builder 3:
mainApp.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
<mx:DataGrid x="191" y="171">
<mx:columns>
<local:DataGridColumnExt headerText="Column 1" dataField="col1"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
DataGridColumnExt.mxml:
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGridColumn xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml" paddingLeft="10">
</mx:DataGridColumn>
我得到的错误:
通过静态类型 DataGridColumnExt 的引用访问可能未定义的属性 styleDeclaration。 [生成的代码(使用-keep保存):路径:DataGridColumnExt- generated.as,行:68,列:13] DataGridColumnWithLeftPadding Unknown 1290353024334 24677
I'm tring to Extend DataGridColumn, and in the extending class, trying
to specify a value for paddingLeft, but I am unable to compile it.
Using Flex Builder 3 :
mainApp.mxml :
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:local="*">
<mx:DataGrid x="191" y="171">
<mx:columns>
<local:DataGridColumnExt headerText="Column 1" dataField="col1"/>
</mx:columns>
</mx:DataGrid>
</mx:Application>
DataGridColumnExt.mxml :
<?xml version="1.0" encoding="utf-8"?>
<mx:DataGridColumn xmlns="*" xmlns:mx="http://www.adobe.com/2006/mxml" paddingLeft="10">
</mx:DataGridColumn>
Error I get :
Access of possibly undefined property styleDeclaration through a reference with static type DataGridColumnExt. [Generated code (use -keep to save): Path: DataGridColumnExt-generated.as, Line: 68, Column: 13] DataGridColumnWithLeftPadding Unknown 1290353024334 24677
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您不需要扩展
DataGridColumn
来更改填充,并且您已经注意到在DataGridColumnExt
中设置样式paddingLeft
不会不工作。我想它不起作用,因为DataGridColumn
仅用作样式的代理。列的项目渲染器从列派生其样式。因此,您有几个选项可以完成您想要做的事情(请参阅下面的示例):mx:DataGridColumn
并在其上设置所需的样式,例如paddingLeft
。该列的项目渲染器将使用填充(请参阅我的示例中的“Column 1”)。mx:DataGridItemRenderer
,直接在项目渲染器中设置样式并相应地设置列的itemRenderer
属性(请参阅我的 )。DataGridColumn
并在自定义列中设置itemRenderer
是有意义的(请参阅 在我的示例中为“Column 3”)ItemRendererWithPadding.mxml
DataGridColumnExt.as
You don't need to extend
DataGridColumn
in order to change the padding and as you've already noticed setting the stylepaddingLeft
in yourDataGridColumnExt
doesn't work. I guess it doesn't work since theDataGridColumn
works only as a proxy for the styles. The column's item renderer derives its styles from the column. So, you have a few options to accomplish what you are trying to do (see my example below):mx:DataGridColumn
and set the desired styles likepaddingLeft
on it. The column's item renderer will use the padding (see "Column 1" in my example).mx:DataGridItemRenderer
, set the styles directly in the item renderer and set the column'sitemRenderer
property accordingly (see "Column 2" in my example).DataGridColumn
and set youritemRenderer
within your custom column (see "Column 3" in my example).ItemRendererWithPadding.mxml
DataGridColumnExt.as