Created attachment 600 [details]
1) Run attached program, break on line 12 (after f is created)
2) Add "f" to the Watch list and expand it so you can see Width and Height.
3) Run the following in the Immediate window:
> f.Height = 7;
Height property in Watch window doesn't instantly change, and highlight in red. Even if you delete it from the watch and add it back in, the value is still 6.
Watch window should provide a real time view for the value of this property.
From what I can tell, this would be a runtime bug. If I understand the MonoDevelop code correctly, it is sending the value over a socket to the runtime to set that value, and a later request for the value is not getting the new value.
(maybe the value change is queued to be set, but wasn't set yet? I don't know)
Michael tells me this is a MonoDevelop feature request, apparently this is "by design". It would be too expensive to re-evaluate all expressions whenever a value is changed, because there's no way to track what side-effects it would have.
*** Bug 7212 has been marked as a duplicate of this bug. ***
The way to solve this, I think, would be to emit TargetStopped event on the DebuggerSession or something. This would cause the Call Stack window, the Watch pad and the Locals pad to all reload, though, which may be expensive.
Still an issue.