Re[9]: DataViewManager и DataGrid
От: SCS  
Дата: 19.03.03 09:09
Оценка: 3 (1)
Здравствуйте, Barboska, Вы писали:

B>dataGridClients.SetDataBinding(dataClient.Tables["CLIENT"], null);

B>dataClient.Tables["CLIENT"].DefaultView.AllowNew = false; //Здесь все нормально!
B>dataClient.Tables["CLIENTS_PRICE"].DefaultView.AllowNew = false; //А при переходе в дочернюю таблицу можно добавлять столбцы!
...строки — это связано стем что для дочерних таблиц DataView создаются динамически при каждом новом показе
выход такой — обрабатывать событие Navigate в grid'e
private void dataGrid1_Navigate(object sender, System.Windows.Forms.NavigateEventArgs ne)
{ // запрашиваешь CurrencyManager для текущего bindig'a в grid'e
  CurrencyManager cm=(CurrencyManager)(this.dataGrid1.BindingContext[this.dataGrid1.DataSource, this.dataGrid1.DataMember]);
  // у CurrencyManager узнаем тот DataView, который он отрабатывает в текущий момент (куда идет навигация)
  DataView dv=(DataView)(cm.List);

  switch(dv.Table.TableName)
  { case "CLIENT": 
      dv.AllowNew=false;
      ...
      break;
    case "CLIENT_PRICE":
      dv.AllowNew=false;
      ...
      break;
  }
}

проверил, вроде мин нет
SCS
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.