У меня есть CustomDataGrid, который простирается от DataGrid и CustomDataGridColumn, который простирается от DataGridColumn.Функция привязки не устанавливается после ввода модели
CustomDataGridColumn имеет переменные-члены типа Function.
В моем представлении я вводил модель презентации с использованием петрушки.
Код выглядит следующим образом:
<fx:Declarations>
<spicefactory:Configure/>
</fx:Declarations>
<fx:Script>
[Inject(id="associatedDocumentsPM")]
[Bindable]
public var model:AssociatedDocumentsPM;
</fx:Script>
<customDataGrid:CustomDataGrid id="AssocDocGrid"
width="100%" height="{(documentDataList.length+2)*20}"
doubleClickEnabled="true" enabled="{modeHandler.appEnable}"
dataP="{documentDataList}"
sortableColumns="false">
<customDataGrid:columnList>
<customDataGrid:CustomDataGridColumn
textAlign="left"
dataFieldIdentifier="documentName"
headerText="Document Type"
modifyLabelField="{model.modifyLabelField}"
dataField="documentName"
isNaNZero="true"
showDataTips="true"
editable="false"/>
...more columns here...
</customDataGrid:columnList>
</customDataGrid:CustomDataGrid>
AssociatedDocumentsPM имеет функции, определенные и они устанавливаются в столбцах.
Одним из примеров является для атрибута modifyLabelField="{model.modifyLabelField}"
CustomDataGridColumn.myLabelField имеет тип функции. myLabelField внутри AssociatedDocumentsPM является публичной функцией.
Контекст файл Петрушка в родителю указанного выше файла и объявляет ПМ следующим образом:
AssocDocPMFactory класс с единственной функцией украшенной [Factory].
Таким образом, проблема заключается в следующем:
Когда я отладки приложения и проверьте columnList в DataGrid, переменная modifyLabelField равна нулю.
Связаны ли функциональные привязки иначе, чем переменные? Я использую Flex 4.5.1 вместе с Parsley 2.4.1
Я понимаю, что инъекция может произойти после вызова createComplete, но я думал, что привязка позаботится об этом.
У меня такое чувство, что модель - PM - имеет значение null до тех пор, пока значительно позже, и привязка функции не будет запущена.
Я также пытался использовать FastInject, но безрезультатно.
Это проблема с указателями функций и привязкой Flex?
Не ответ на ваш вопрос, а наблюдение: вы не должны расширять GridColumn, если вы не хотите изменять или добавлять его функциональность. Вряд ли в этом есть необходимость. Недавно у меня было [аналогичное обсуждение] (http://stackoverflow.com/questions/10520158/flex-application-is-confused-when-passing-variables-to-custom-component). – RIAstar