Thanks for the response!
I ended up using the first approach as I wanted to get something done quick, but I'll likely convert it into the second option instead to be more agnostic about which fields I need to update.
Here is what I had written at first for the first approach, for anyone else who may need code.
QueuedTask.Run(() =>
{
var editOperation = new EditOperation();
var fieldName = "name";
editOperation.Callback(context =>
{
relate.CreateRelationship(_sourceFeature, annoFeature);
ForceFeatureLinkedAnnoUpdate(_sourceFeature, _sourceAnnoFeatureLayer as AnnotationLayer, fieldName);
context.Invalidate(_sourceFeature);
}, _sourceFeatureLayer, _sourceAnnoFeatureLayer);
bool editResult = editOperation.Execute();
MapView.Active.Redraw(true);
});
private void ForceFeatureLinkedAnnoUpdate(Feature sourceFeature, AnnotationLayer annoLayer, string fieldName)
{
var fields = sourceFeature.GetFields().ToList();
if (sourceFeature.FindField(fieldName) > -1)
{
var currentValue = sourceFeature[fieldName];
sourceFeature[fieldName] = "LOADING ANNOTATION";
sourceFeature.Store();
sourceFeature[fieldName] = currentValue;
sourceFeature.Store();
}
}