title: Rows in datagridview are no longer editable after binding source change
body: <p>I'm designing an application in C# based on Windows Forms, which allows employees in my company to bill hours on projects for clients. Data is kept in MS SQL Server 2014 and ADO.NET Entity Framework 6 is used to load it to the application. I'm using Visual Studio 2013 and EF DBContext Generator was user.
  Only one form is considered so far, it contains one combobox and one datagridview. In the combobox employee will be selected, in gridview records for the employee will be shown. Data sources of both objects are set to BindingSource objects.</p>
  
  <p>Tables crucial in this problem are following: </p>
  
  <p><code>t_employee(PK:t_employee_id)</code> - rows from this one are in combobox <br>
  <code>t_employee_project_task(PK: t_employee_project_task_id, FK: t_employee_id)</code> <br>
  <code>t_employee_project_task_week(PK: t_employee_project_task_week_id, FK: t_employee_project_task_id)</code> - rows from this one are in datagridview <br>
  The columns with same names are referenced.</p>
  
  <p>There more FKs and tables, but they doesn't seem to matter here.</p>
  
  <p>Here is code of the form:</p>
  
  <pre><code>public partial class f_main : Form {
      ais_etEntities _context; //DbContext
      t_employee current_employee; //current employee, the one selected in combobox
      public f_main() {
          InitializeComponent();
      }
  
      private void f_main_Load(object sender, EventArgs e) {
          _context = new ais_etEntities();
          //t_employee loading
          _context.t_employee.Load();
          current_employee = _context.t_employee.Single(emp =&gt; emp.name == Environment.UserName);
  
          //t_employee_project_task_week loading
          _context.t_employee_project_task_week.Where(eptw =&gt; eptw.t_employee_project_task.t_employee.t_employee_id == current_employee.t_employee_id).Load();
  
          //binding
          this.t_employee_project_task_weekBindingSource.DataSource = _context.t_employee_project_task_week.Local.ToBindingList();
          this.t_employeeBindingSource.DataSource = _context.t_employee.Where(em =&gt; em.t_employee_id == current_employee.t_employee_id || em.t_delegate.Any(d =&gt; d.t_delegated_to_id == current_employee.t_employee_id)).ToList();
  
      }
  
      private void comboBox2_SelectionChangeCommitted(object sender, EventArgs e) {
          current_employee = (t_employee)this.comboBox2.SelectedItem;
          _context.t_employee_project_task_week.Where(eptw =&gt; eptw.t_employee_project_task.t_employee.t_employee_id == current_employee.t_employee_id).Load();
          this.t_employee_project_task_weekBindingSource.DataSource = _context.t_employee_project_task_week.Local.ToBindingList().Where(eptw =&gt; eptw.t_employee_project_task.t_employee.t_employee_id == current_employee.t_employee_id);
  
  
      }
  }
  </code></pre>
  
  <p>I'd like to make datagridview editable (adding, deleting, editing rows). It's easy for the first employee - I load to the context <code>t_employee_project_task_week</code> rows only for one employee and bind datagridview to <code>_context.t_employee_project_task_week.Local.ToBindingList()</code>. </p>
  
  <p>When employee changes in combobox, In <code>SelectionChangeCommitied</code> event I load rows for him to the context and need to change <code>t_employee_project_task_weekBindingSource</code> so that records for only one, selected employee are shown. I set the binding to <code>_context.t_employee_project_task_week.Local.ToBindingList().Where(eptw =&gt; eptw.t_employee_project_task.t_employee.t_employee_id == current_employee.t_employee_id)</code> and my datagridview is not editable anymore. By "not editable" I mean the "add row" icon on BindingNavigator becomes gray (you can click it). BindingNavigator is bound to the same BindingSource as datagridview.</p>
  
  <p>I believe there is a issue with the types returned by <code>_context.t_employee_project_task_week.Local.ToBindingList().Where(eptw =&gt; eptw.t_employee_project_task.t_employee.t_employee_id == current_employee.t_employee_id)</code> and <code>_context.t_employee_project_task_week.Local.ToBindingList()</code></p>
  
  <p>Major issue: How to change binding and still be able to add and remove rows?
  Minor issue: Is the idea of loading <code>t_project_task_employee_week</code> rows employee by employee correct? I'd like to stay with ADO.NET EF, but binding approach could be changed.</p>
  
  <p>Any suggestions would be highly appreciated!</p>