1) I'm not sure how you can bind a control directly to a View, but you can edit your DataSet (assuming your using the designer under data sources right click on your dataset and click "edit dataset in designer", once there you can right click and add a table adapter which you can populate however you want (For example
SELECT * FROM [YourView]
Alternatively you could just use a stored procedure or type the SQL there to populate the Table Adapter.
Once you have added a table adapter to your dataset you can bind your DataGrid to that table adapter just as you would to a regular table.
I know this is probably now what your looking for but the truth is that I came across your question while looking for a way to do more or less the same thing.
2) You table adapter can be based on many tables using either a SQL statement or a Stored Procedure.
3) Why don't you directly bind those controls using their datasource property?
4) If the controls are themselves bound then you can change the data through the controls and to see the changes in your datagrid you should just need to "refresh" (call it's databind() method) to see the updated data.