【发布时间】:2013-02-24 16:22:33
【问题描述】:
我知道 Flex 漏洞百出,需要大量的技巧才能使其正常工作,但我认为我正走在正确的道路上。我将描述我正在尝试实施的问题和解决方案,希望您能指出我正确的道路。
我要做的是将 Spark DataGrid 列的宽度绑定到 Spark 标签的宽度,这是第一个洞:GridColumn 有一个绑定属性“width”,但在对象创建后它还没有准备好完成并且仅在用户交互后发布。所以我想出了第一个技巧:从 DataGrid 本身提取列宽的函数,它绑定到在创建列或更改列大小时触发的事件,并且它可以工作:
[Bindable(event="creationComplete")]
[Bindable(event="columnStretch")]
[Bindable(event="propertyChange")]
public function columnWidth(grid:DataGrid, column:GridColumn):int {
if(isNaN(column.width)){
if(column.grid){
return column.grid.getColumnWidth(grid.columns.getItemIndex(column));
}
}
return column.width;
}
它可以在创建时检索宽度,但是当我用光标设置列的宽度时它不起作用,因为任何可绑定属性都有效,所以事情是这样的:如果我设置像这样的标签:用户交互后宽度会改变,但网格创建完成后不会改变。如果我在网格完成后设置宽度并更改宽度但它不会对用户交互做出反应...
有什么帮助吗?
【问题讨论】:
标签: actionscript-3 apache-flex data-binding flex4.5