Я создаю приложение с открытым исходным кодом для управления ресурсами окружающей среды в моем округе.Обновление itemrenderer dataprovider
У меня проблема с dataprovider для itemrenderer (combobox), который я использую на datagrid. Приложение работает, но я получаю предупреждение о том, что dataprovider itemrenderer не будет переназначать данные в своем обновлении установщиком. Даже если мне не нужно переназначать dataprovider itembenderer combobox, в отношении наилучшей практики я бы хотел решить это предупреждение.
Это обычный код я использую для получения DataProvider данных в виде коллекции массива заселенной из результата веб-службы в parentDocument в ItemRenderer:
//set farmers arrayCollection values for combobox itemrenderer [Bindable] private var _acFarmers:ArrayCollection=new ArrayCollection; public function set acFarmers(acFarmers:ArrayCollection):void{ _acFarmers=acFarmers; } //get machines ArrayCollection values public function get acFarmers():ArrayCollection{ return _acFarmers; }
Это код DataGrid ItemRenderer (показывая только заинтересованный столбец DataGrid):
<mx:DataGridColumn headerText="Agricoltore" dataField="farmerId" width="200" rendererIsEditor="true" editable="false">
<mx:itemRenderer>
<fx:Component id="cmpCmbFarmers">
<mx:HBox>
<s:ComboBox width="200"
id="cmbFarmers"
dataProvider="{outerDocument.acFarmers}"
labelField="companyName"
change="onSelectionChange(event)"
>
<fx:Script>
<![CDATA[
import mx.controls.dataGridClasses.DataGridListData;
import mx.controls.listClasses.BaseListData;
import mx.events.ListEvent;
private var _ownerData:Object;
private function setSelected():void {
}
override public function set data(value:Object):void{
if(value != null) {
super.data=value;
_ownerData=value;
if(value.collectingMachineId!==null){
for each(var dp:Object in cmbFarmers.dataProvider){
var dpFarmerId:String=dp.farmerId
var dataFarmerId:String=value.farmerId;
if(dpFarmerId==dataFarmerId){
cmbFarmers.selectedItem=dp;
}
}
} else {
cmbFarmers.selectedIndex=0;
data.farmerId=cmbFarmers.selectedItem.farmerId;
}
}
}
import spark.events.IndexChangeEvent;
protected function onSelectionChange(event:IndexChangeEvent):void
{
data.farmerId=cmbFarmers.selectedItem.farmerId;
}
]]>
</fx:Script>
</s:ComboBox>
</mx:HBox>
</fx:Component>
</mx:itemRenderer>
</mx:DataGridColumn>
Этот код работает, если я вызываю службу ItemRenderer, чтобы получить данные COMBOBOX до вызова службы DataGrid данных и настройка DataGrid ArrayCollection при повторной реакции РЭ rvice.
BUT предупреждение отображается, потому что передатчик данных combobox не будет изменяться после функции набора на своем датапортере (_acFarmers).
Это единственное предупреждение, которое у меня есть для всего проекта, но я не мог решить, как его решить.
Я бы очень признателен за любую помощь.
Благодаря
Paolo