When I happen to interact with "simple" properties in the view or with strange controls not supporting binding, I usually choose one of these approach (in order of personal preference, but context is also very important):
1) "Poor-man binding": from the view code-behind, subscribe to VM PropertyChanged event and react to the change of an opportune property (VM is tipically accessible from view through DataContext property, which also raises events when it is changed,
so you can easily subscribe and unsubscribe)
2) "Custom IResult": write a custom IResult and call it using coroutine tecnique in VM; the IResult.Execute method (called by infrastructure) has access to the view, so you can find your control by name and do whatever you need.
3) "MVP approach": define an interface to be implemented by the view (in code behind), then use it from VM leveraging IViewAware interface to access the view