AnsweredAssumed Answered

Implementing my own Expression Parser for the Labeling engine

Question asked by ccposton on Sep 17, 2012
Latest reply on Sep 17, 2012 by ccposton
Hello, I'm trying to implement my own expression parser. Everything seems to be fine, but the IFeature that is passed to the FindLabel method of my parser does not contain values for fields. The get_Value method is always returning null. FindField returns a valid index. How can I tell the engine to populate its fields?


The following is my implementation of IAnnotationExpressionParser2.FindLabel:


  public string FindLabel(ESRI.ArcGIS.Geodatabase.IFeature feature, ILayerFields layerFields)   {    string label = "";    if (feature != null && layerFields != null)    {     int propIdIndex = layerFields.FindField("myfield");     if (propIdIndex >= 0)     {      var value = feature.get_Value(propIdIndex);      int propId;      if (value != null && int.TryParse(value.ToString(), out propId) && propId > 0)      {       label = "test " + propId.ToString();      }     }    }    return label;   }


Is there an option I have to set for this? Please let me know.

Thanks!
George Faraj

Outcomes