国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網站 > WEB開發 > 正文

7.3.訪問設置自己渲染器的組件

2024-04-27 13:52:00
字體:
來源:轉載
供稿:網友
7.3.1. 問題
item renderer 需要訪問它的父組件的一些數據。
7.3.2. 解決辦法
實現IDropInListItemRenderer,通過drop-in renderer 訪問它的父組件.
7.3.3. 討論
實現了IDropInListItemRenderer 的renderer 不但能訪問data 等一些傳入的數據,還能通過BaseListData類型的一個屬性訪問renderer 的父組件(如List 或DataGridColumn)。

mx.controls.listClasses.BaseListData 有如下屬性:
columnIndex : int
當前是第幾列,當用戶用mouse 點擊List 或DataGrid 某個元素時這個屬性被賦值。第一列是1。(注意,這個值的含意是指選中列是當前可見表格中的第幾行,如果有橫向的滾動條時要小心使用此屬性)(原文中指出第一列是1,但事實是0)

owner : IUIComponent
這個drop-in itemRenderer 的所有者,即一個List 對象,或DataGridColumn 對象。(我認為原文這里是寫錯了,owner 不可能是DataGridColumn 對象, 它只能是一個從ListBase擴展的類型,我想作者這里是想寫DataGrid)

rowIndex : int
當前是第幾行,類似columnIndex(這里要注意,這個屬性對于Tree 有特殊含意,這個值是根據當前所有展開結點排列所得。)第一行是1。(原文中指出第一行是1,但事實是0)

uid : String
用于唯一標識一個renderer 對象。

如果itemRenderer 實現了IDropInListItemRenderer 接口,即itemRenderer 會有set listData 和get listData 兩個方法,當這個itemRenderer 被使用時,它會被實例化并利用set listData 傳數據給itemRenderer,這個數據就是我們在前邊提到的,BaseListData類型的對象。在調用renderer 的set data 方法時我們可以根據listData 來得到擁有這個renderer 的容器,并通過一些判斷來決定對data 的處理。在這個過程中,我們還可以調用自己的一些方法。下面我們通過例子說明listData 的用法。
+展開
-XML
<mx:VBox xmlns:mx="http://www.adobe.com/2006/mxmlwidth="400"
height="50implements="mx.controls.listClasses.IDropInListItemRenderer">

<mx:Script>
<![CDATA[
import mx.controls.DataGrid;
import mx.controls.List;
import mx.controls.dataGridClasses.DataGridColumn;
import mx.controls.listClasses.BaseListData;
// store the list data item in case we want to do something with it
// later on
private var _listData:BaseListData;
[Bindable("dataChange")]
// a getter method.
public function get listData():BaseListData { return _listData; }
// a setter method,當BaseListData 數據被傳入之后renderer 就可以通過它自己的一
//些屬性訪問擁有它的父組件中元素的數據,甚至可以調用父組件中的方法。
public function set listData(value:BaseListData):void {
_listData = value;
if (value.owner is DataGridColumn) {
trace("DataGridColumn");
else if(value.owner is List) {
trace("List");
else if
(value.owner is CustomDataGrid) {
trace("CustomDataGrid");
(value.owner as CustomDataGrid).checkInMethod(this);
}
}
override public function set data(value:Object):void {
nameTxt.text = value.name;
appearanceTxt.text = value.appearance;
}

]]>
</mx:Script>
<mx:Canvas backgroundColor="#3344ff">
<mx:Label id="nameTxt"/>
</mx:Canvas>
<mx:Label id="appearanceTxt"/>
</mx:VBox>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 文成县| 建昌县| 睢宁县| 宾川县| 睢宁县| 中山市| 泉州市| 旬邑县| 三都| 龙泉市| 措勤县| 洞头县| 玉田县| 灵武市| 吉隆县| 安化县| 固镇县| 霸州市| 保靖县| 建始县| 阜新| 通许县| 镇康县| 花莲县| 金溪县| 化州市| 乡城县| 长宁县| 申扎县| 紫阳县| 墨竹工卡县| 惠水县| 山阴县| 策勒县| 钦州市| 中江县| 江津市| 新竹县| 化德县| 红原县| 沅陵县|