Я хочу иметь возможность выбрать определенную ячейку в сетке данных Silverlight 3.0 и перевести ее в режим редактирования. Я могу использовать VisualTreeManager, чтобы найти ячейку. Как перейти в режим редактирования?
Каждый DataGridCell выглядит в VisualTreeManager следующим образом:
System.Windows.Controls.DataGridCell
System.Windows.Controls.Grid
System.Windows.Shapes.Rectangle
System.Windows.Controls.ContentPresenter
System.Windows.Controls.TextBlock
System.Windows.Shapes.Rectangle
System.Windows.Shapes.Rectangle
с TextBlock, содержащим текст, который я хочу редактировать.
Обновление
Следуя совету @AnthonyWJones, вот как я пытался сделать это, используя BeginEdit ().
Я хотел, чтобы все было просто, поэтому я решил выбрать столбец в первом ряду. Даже это оказалось за пределами моего знания SL! В конце я получаю первую строку, создав поле с именем firstRow для его хранения:
private DataGridRow firstRow;
добавил обработчик LoadingRow в DataGrid:
LoadingRow="computersDataGrid_LoadingRow"
и
private void computersDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (this.firstRow == null)
this.firstRow = e.Row;
}
и затем добавление кнопки на панель для запуска редактирования:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.dataGrid.SelectedItem = this.firstRow;
this.dataGrid.CurrentColumn = this.dataGrid.Columns[4];
this.dataGrid.BeginEdit();
}
Я нажимаю кнопку, и выбирается правильная ячейка, но она не редактируется в ячейке. Для этого требуется ручной щелчок.