Спасибо NominSim, это помогает мне решить мою проблему, но как нейротикс
не нашел методы CellEnter и CellLeave в моей DataGrid в SilverLight 4.
Как сказал NominSim, вам нужно знать индекс строки и столбца.
Как мне это решить:
Отключить редактирование
System.Windows.Threading.DispatcherTimer timMakeEditable = new System.Windows.Threading.DispatcherTimer();
private void dataGrid1_PreparingCellForEdit(object sender, DataGridPreparingCellForEditEventArgs e)
{
timMakeEditable.Interval = new TimeSpan(0, 0, 0, 0, 100); // 100 Milliseconds
timMakeEditable.Tick += new EventHandler(timer_Tick);
timMakeEditable.Start();
if (e.RowIndex == r && e.ColumnIndex == c)
{
dataGrid1.Columns[yourColumnIndex].IsReadOnly = true;
}
}
Включить редактирование
Через несколько миллисекунд таймер включает столбец:
void timer_Tick(object sender, EventArgs e)
{
dataGrid1.Columns[yourColumnIndex].IsReadOnly = false;
timMakeEditable.Stop();
}
Я думаю, что лучше использовать cellEditEnded, но у меня это не сработало.