Flex AdvancedDataGrid:MXML ItemRenderers不默认为默认样式

时间:2009-01-29 09:04:39

标签: flex actionscript-3 advanceddatagrid

我知道AdvancedDataGrid有一个styleFunction回调,但我不想改变样式;我希望itemRenderer获得其他所有内容(包括普通列)使用的全局样式。

我的内嵌项目渲染器使用默认样式,但不是我创建的单独MXML类(它们扩展Canvas)。

我需要摆动以将样式传播到我的项目渲染器中的任何句柄吗?

由于

2 个答案:

答案 0 :(得分: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>

答案 1 :(得分:0)

我的坏

它正在从ADG中汲取风格;该组件的风格并未默认为全球风格。

相关问题