I am programmatically changing GoDocuments in a GoView and need to be able to fire an event to capture the document change. I have looked into using the DocumentChanged event but this does not seem to work. Does anyone have any ideas about the best way to accomplish my goal?
I recommend following the examples (and documentation) for how to add a property to either a GoDocument or to a GoObject.
Basically, define a Changed hint such as ChangedLocation in ProtoApp’s GraphDoc. Define your property, such as Location, and make sure the setter calls GoDocument.RaiseChanged when the value changes.
To support undo/redo, you also need to define an override of GoDocument.ChangeValue (if not already present) to handle the ChangedLocation case. This should just set the Location property to the appropriate value (old if undo, new if redo) from the GoChangedEventArgs that was passed in.
Similar things need to be done if you are defining a new property on a GoObject. Again, look at the sample classes for examples.