Como posso colocar um DataGridCell do Silverlight 3 no modo de edição no código?
Quero poder escolher uma célula específica em um DataGrid do Silverlight 3.0 e colocá-la no modo de edição. Eu posso usar o VisualTreeManager para localizar a célula. Como alterno para o modo de edição?
Cada DataGridCell se parece com isso no 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
com o TextBlock contendo o texto que eu quero editar.
Atualizar
Seguindo a sugestão de @AnthonyWJones, veja como tentei fazer isso usando BeginEdit ().
Eu queria simplificar, então pensei em escolher uma coluna na primeira linha. Até isso provou além do meu conhecimento sobre SL! No final, recebo a primeira linha criando um campo chamado firstRow para mantê-lo:
private DataGridRow firstRow;
adicionou um manipulador LoadingRow ao DataGrid:
LoadingRow="computersDataGrid_LoadingRow"
e
private void computersDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (this.firstRow == null)
this.firstRow = e.Row;
}
e adicionando um botão ao painel para acionar a edição:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.dataGrid.SelectedItem = this.firstRow;
this.dataGrid.CurrentColumn = this.dataGrid.Columns[4];
this.dataGrid.BeginEdit();
}
Clico no botão e a célula correta é selecionada, mas ela não entra em edição na célula. É preciso um clique manual para conseguir isso.