我想知道如果任何人有任何運氣與flex中以下senario。Flex開關項目渲染器
我想能夠有一個自定義項目渲染器,委託給另一個渲染器。
如果數據提供者的行具有布爾值,則會在數據網格中顯示覆選框。當值爲非布爾值時使用默認項目渲染器。
基本上我希望使用代理對象(儘管不一定是代理類),以便我可以將渲染器的所有責任委託給子渲染器。
很難解釋。
編輯1
我認爲下面給出的是什麼我想到一個清晰的概念。爲了展示這個想法,這只是很快被打破。
SwitchingRenderer.as
package com.example
{
import mx.controls.CheckBox;
import mx.controls.dataGridClasses.DataGridItemRenderer;
import mx.controls.listClasses.BaseListData;
import mx.controls.listClasses.IDropInListItemRenderer;
import mx.core.IDataRenderer;
import mx.core.UIComponent;
public class SwitchingRenderer extends UIComponent implements IDataRenderer, IDropInListItemRenderer
{
private var checkboxRenderer:CheckBox;
private var defaultRenderer:DataGridItemRenderer;
private var currentRenderer:IDataRenderer;
public function SwitchingRenderer()
{
this.checkboxRenderer = new CheckBox();
this.defaultRenderer = new DataGridItemRenderer();
this.currentRenderer = defaultRenderer();
super();
}
public function get data():Object
{
//If the data for this cell is a boolean
// currentRender = checkBoxRenderer
// otherwise
// currentRenderer = defaultRenderer
}
public function set data(value:Object):void
{
currentRenderer.data = value;
}
public function get listData():BaseListData
{
return currentRenderer.listData;
}
public function set listData(value:BaseListData):void
{
currentRenderer.listData = value;
}
}
}
我希望我已經clarifed我的問題有點。 – Wes 2010-08-18 21:43:07
我已經編輯了我的答案,但是我會指出你原來的帖子沒有問題。試圖執行此操作時遇到問題嗎?你已經在你的問題中定義了算法邏輯。 – JeffryHouser 2010-08-19 02:14:26
是的,我曾考慮過這個。我明白我的問題是不同的。它是一個有用的答案,但是,我試圖看看該方法是否可行。 – Wes 2010-08-20 22:07:20