Changing a textbox (StringProperty) on object change

I am starting to get ot grips with python and want to do something, which on the face of it, should be very straightforward.
I have a stringproperty:
my_string = StringProperty( name = “MyItem”, default = “Boo”)

Which I have in a simple panel
row.prop(mypropptr, “my_string”)

where ‘myproptr’ is a reference to my pointerproperty.

All I want ot do is have this textbox show the name of the currently selected object as a default, so the user can then edit that name before actioning something via a button.

I cannot, for the life of me, find anything in google searches which does this, however, given there are several places in Blender which are updated on clicking an item, it must be possible. Unless of course there is some convoluted method of updating the object panels.

Can anyone shed any light on where and how I would do this? E.G. whether in an invoke / execute method or some other process? I am tearing my hair out at something that seems it should be so straightforward.