How are you suppose to call methods that are in the View (ie MainForm partial class) from within the Presenter. Do i have to add it to the Interface which the View implements and which is DI’d into the Presenter?
If not, what is the preferred approach?
It seems a little odd to be adding all these methods to the Interface just so i can execute UI methods in the View.
The View implements an interface. The Presenter takes this interface as constructor parameter. So only members that are part of this interface can be called from within the Presenter. If you define some other methods in your View (Form) those members should be private and the Presenter should not know anything about them.
That’s how the MVP pattern works. The Presenter manipulates the view indirectly, through the interface this view implements.