【问题标题】: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 那里获得了风格;该组件的样式未默认为全局样式。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-04-21
        • 2010-12-20
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-28
        相关资源
        最近更新 更多