Well, actually ElementHost displays the whole WPF app within it.
I think, it does not allow you to update controls like ContentPresenter from outside(winforms appliction).
I think it would be a good practice to expose one method which will create this ContentPresenter for you.
Sacha Barbar proposed a good extension to work with Cross thread issues. You might take a look into it.
Check this :
public static void InvokeIfRequired(this DispatcherControl control, Action operation)