Wie kann ich eine Silverlight 3 DataGridCell im Code in den Bearbeitungsmodus versetzen?

Ich möchte in der Lage sein, eine bestimmte Zelle in einem Silverlight 3.0-DataGrid auszuwählen und in den Bearbeitungsmodus zu versetzen. Ich kann den VisualTreeManager verwenden, um die Zelle zu lokalisieren. Wie wechsle ich in den Bearbeitungsmodus?

Jede DataGridCell sieht im VisualTreeManager folgendermaßen aus:

          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

mit dem TextBlock, der den zu bearbeitenden Text enthält.

Aktualisieren

Nach dem Vorschlag von @AnthonyWJones habe ich versucht, dies mit BeginEdit () zu tun.

Ich wollte es einfach halten, also dachte ich, ich würde eine Spalte in der ersten Reihe auswählen. Sogar das erwies sich jenseits meiner SL-Kenntnisse! Am Ende erhalte ich die erste Zeile, indem ich ein Feld namens firstRow erstelle, um es zu halten:

private DataGridRow firstRow;

hat einen LoadingRow-Handler zum DataGrid hinzugefügt:

LoadingRow="computersDataGrid_LoadingRow"

und

private void computersDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
    if (this.firstRow == null)
        this.firstRow = e.Row;
}

und dann eine Schaltfläche zum Bedienfeld hinzufügen, um die Bearbeitung auszulösen:

private void Button_Click(object sender, RoutedEventArgs e)
{
    this.dataGrid.SelectedItem = this.firstRow;
    this.dataGrid.CurrentColumn = this.dataGrid.Columns[4];
    this.dataGrid.BeginEdit();
}

Ich klicke auf die Schaltfläche und die richtige Zelle wird ausgewählt, aber sie wird in der Zelle nicht bearbeitet. Dazu ist ein manueller Klick erforderlich.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage