Thanks very much! It was pretty easy once you pointed me in the right direction.
What I implemented is modified from those ideas:
I set AutoSave=false on my feature layer.
Then, it turns out I don't need the FeatureDataGrid or EditorWidget. I use an Editor with the Add and EditVertices command bound to it and assigned to a "New" and "Edit" Button, respectively, in a StackPanel & Border in my UserControl's Grid.
The host web app determines what the current row is, and I use it's primary key ID value to set, in code, a Where on my FeatureLayer, then call Update() on the layer to refresh it. Then once the FeatureLayer's UpdateCompleted event fires, the FeatureLayer has a single row in it (in other words, the FeatureLayer.Graphics.Count == 1). If that row already has a geometry, it'll be drawn. Either way I squirrel away the Graphic in a member variable: _editParcel = _editLayer.Graphics[0];
I can then use my "New" button to draw a new graphic, or if the row already has a geometry, I can use my "Edit" button, click on the graphic, which gives me handles to move or add vertices. In either case, when I complete the edit the Editor's EditCompleted event fires, which includes the new or edited Graphic in its eventargs, and, in the new case, the FeatureLayer.Graphics.Count now == 2. I get the Geometry off the new Graphic and assign it as the Geometry of my existing Graphic that I squirreled away earlier. Then I delete the new graphic from the layer's Graphics collection: _editLayer.Graphics.RemoveAt(_editLayer.Graphics.Count() - 1);, so that a new row doesn't get added when I save the edits.
Finally, I also have a "Save" button on that StackPanel - clicking it calls _editLayer.SaveEdits();
Voila!