【发布时间】:2011-01-09 01:18:24
【问题描述】:
我希望能够选择 Silverlight 3.0 DataGrid 中的特定单元格并将其置于编辑模式。我可以使用 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;
向 DataGrid 添加了一个 LoadingRow 处理程序:
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();
}
我单击按钮并选择了正确的单元格,但它没有进入单元格上的编辑状态。需要手动点击才能实现。
【问题讨论】:
标签: silverlight silverlight-3.0 datagrid