The following code fragment:
private IList<Feature> GetPhotos(Feature feature)
{
QueryFilter filter = new QueryFilter("COND_SITE_ID = {" + feature.GetDataRow().GlobalId + "}");
LayerInfoCollection layers = feature.FeatureLayerInfo.MobileCacheInfo.LayerInfos;
FeatureLayerInfo childLayer = layers["photos"];
IList<Feature> features = childLayer.GetFeatures(filter,EditState.Current);
return features;
}
if the feature has photos associated, it consitently get the below stack trace. on call to childLayer.GetFeatures(filter);
As is I need this code to be executied while the feature being passed in is being edited so I can display list of associated photos, etc....
I have tried:
FeatureDataReader reader = new FeatureDataReader(info.FeatureLayer, filter,EditState.Current);
but get the same stack trace. (from ArcGIS Mobile build 2525)
ESRI ®ArcGIS Mobile 10.0.0.0
Tuesday, April 03, 2012 2:39:18 PM
-----
Message:
Operation is not valid due to the current state of the object.
Stack Trace:
at ESRI.ArcGIS.Mobile.MobileServices.FeatureDataReader.InitCursor()
at ESRI.ArcGIS.Mobile.MobileServices.FeatureDataReader.Reset()
at ESRI.ArcGIS.Mobile.MobileServices.FeatureDataReader..ctor(FeatureLayer featureLayer, QueryFilter queryFilter, EditState requestedEditState, Boolean lockedRead, String[] columnNames)
at ESRI.ArcGIS.Mobile.MobileServices.FeatureDataReader..ctor(FeatureLayer featureLayer, QueryFilter queryFilter, EditState requestedEditState, String[] columnNames)
at ESRI.ArcGIS.Mobile.Client.FeatureLayerInfo.GetFeatures(QueryFilter queryFilter, EditState editState)
at ESRIAU.ArcGIS.Mobile.CustomEditFeature.ChildrenInputControl.GetPhotos(Feature feature) in D:\LARIE\CommonArcgis10\Development\EsriMobile\CustomEditFeaturePage\CustomEditFeaturePage\CustomEditFeature\ChildrenInputControl.xaml.cs:line 213