title: Some guidelines on how to implement MVP pattern for a data binding windows forms app
body: <p>I would like to build a windows forms application which uses data binding, which I assume is the use of binding sources. I am going to be loading different parts of a large datatable to 3 separate datagridviews, and I'm going to accommodate operations like:</p>
  
  <p>1) Moving whole columns of data from one datagridview to another</p>
  
  <p>2) Editing values inside the cells</p>
  
  <p>3) Filtering data</p>
  
  <p>4) In the future, accomodate getting live data as well, and showing any new data just as it comes.</p>
  
  <p>My first approach, which seemed logical to me, would be that the entry point would probably be the presenter, and then the presenter would create view. I am thinking quite seriously of another approach however, which is to have a separate class create the presenter, view, and model. </p>
  
  <p>The <strong>first</strong> question is: Is one of the two approaches potentially better in this particular scenario?</p>
  
  <p>Second question: Right now my filtering was immediate. But if I implement the MVP, then that means that the filtering operation would have to go through the presenter class, which would update the model, and then come back to the presenter, which would update the view. Perhaps this won't be a visually appealing experience for the user. Would it be perhaps better if the view was directly connected to the model for these kinds of operations (supervised MVP)?</p>
  
  <p><strong>Third :</strong> Is it a correct approach to create presenters for other user controls that will pop up, but that they will not be able to directly access the model, and will instead have to go thrugh the main presenter of the application first?</p>