I am importing symbology from a layer as below. After updating the symbology, I update the label expression to use the label field in the current data. Once I turn on the labels however, the labels now have default properties; the label design from the imported layer is lost. Font size and style are off and the halo is removed. How can I maintain the layer file's labelling properties with my new data?
await QueuedTask.Run(() =>
{
var lyrDoc = new LayerDocument(LayerFilePath);
var cimLyrDoc = lyrDoc.GetCIMLayerDocument();
var rendFromLyrFile = ((CIMFeatureLayer)cimLyrDoc.LayerDefinitions[0]).Renderer as CIMUniqueValueRenderer;
rendFromLyrFile.Fields= new string[] { "SiteDesc" };
facLayer.SetRenderer(rendFromLyrFile);
});
//update the labels
await QueuedTask.Run(() =>
{
var def = facLayer.GetDefinition() as CIMFeatureLayer;
var listLabelClasses = def.LabelClasses.ToList();
var theLabelClass = listLabelClasses.FirstOrDefault();
theLabelClass.Expression = $"$feature.{divFieldnameFac} + ' ' + $feature.{divNameFieldnameFac}";//set the label class Expression to use the Arcade expression
facLayer.SetDefinition(def);
facLayer.SetLabelVisibility(true);
}); @CharlesMacleod @UmaHarano @Wolf