【问题标题】:Flex AdvancedDataGrid: MXML ItemRenderers are not defaulting to the default styleFlex AdvancedDataGrid:MXML ItemRenderers 不默认为默认样式
【发布时间】:2009-01-29 09:04:38
【问题描述】:
我知道 AdvancedDataGrid 有一个 styleFunction 回调,但我不想更改样式;我希望 itemRenderer 获得其他所有内容(包括普通列)使用的全局样式。
我的内嵌项目渲染器使用默认样式,但不是我创建为单独的 MXML 类的那些(它们扩展了 Canvas)。
为了将样式传播到我的项目渲染器中,我需要调整任何句柄吗?
谢谢
【问题讨论】:
标签:
apache-flex
actionscript-3
advanceddatagrid
【解决方案1】:
我认为你不能传播。似乎 styleFunction 是完全不同的东西。但是你可以访问任何 CSS 属性
var styleDecl:CSSStyleDeclaration = StyleManager.getStyleDeclaration("YourTagOrClassName");
然后:
styleDecl.getStyle(property);
如果您想直接从 AdvancedDataGrid 获取样式声明,您必须获取渲染器 listData:
<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml"
implements="mx.controls.listClasses.IDropInListItemRenderer">
<mx:Script>
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
[Bindable("dataChange")] private var _listData : BaseListData;
public function get listData():BaseListData
{
return _listData;
}
public function set listData( value : BaseListData ) : void
{
_listData = value;
}
override public function set data(value:Object):void
{
super.data = value;
if (this.listData)
((this.listData as DataGridListData).owner as AdvancedDataGrid).getStyle(...);
}
</mx:Script>
</mx:Canvas>
【解决方案2】:
我的坏
它从 ADG 那里获得了风格;该组件的样式未默认为全局样式。