ssg*_*926 6 silverlight datagrid silverlight-3.0
我希望能够在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
Run Code Online (Sandbox Code Playgroud)
使用包含我要编辑的文本的TextBlock.
更新
按照@AnthonyWJones的建议,这是我尝试使用BeginEdit()的方法.
我想保持简单,所以我想我会在第一行选择一列.即使这证明超出了我的SL知识!最后,我通过创建一个名为firstRow的字段来保存第一行:
private DataGridRow firstRow;
Run Code Online (Sandbox Code Playgroud)
向DataGrid添加了一个LoadingRow处理程序:
LoadingRow="computersDataGrid_LoadingRow"
Run Code Online (Sandbox Code Playgroud)
和
private void computersDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)
{
if (this.firstRow == null)
this.firstRow = e.Row;
}
Run Code Online (Sandbox Code Playgroud)
然后向面板添加一个按钮以触发编辑:
private void Button_Click(object sender, RoutedEventArgs e)
{
this.dataGrid.SelectedItem = this.firstRow;
this.dataGrid.CurrentColumn = this.dataGrid.Columns[4];
this.dataGrid.BeginEdit();
}
Run Code Online (Sandbox Code Playgroud)
我单击按钮并选择了正确的单元格,但它不会在单元格上进行编辑.需要手动点击才能实现这一目标.
我不确定为什么您需要使用 VisualTreeManager 查找 DataGridCell,也不知道当前如何正确开始编辑 . 您只需将单元格的视觉状态设置为编辑即可。
VisualStateManager.GoToState(myDataGridCell, "Editing", true);
Run Code Online (Sandbox Code Playgroud)
我不确定当您执行上述操作时网格的行为如何。如果您需要 DataGrid 来帮助您恢复对行的更改,您可能会发现事情变得有点梨形。
“标准”方法是将DataGrid
SelectedItem
属性设置为由行表示的项目,将CurrrentColum
属性设置为DataGridColumn
表示在其中找到单元格的列的对象。然后调用该BeginEdit
方法。
归档时间: |
|
查看次数: |
6509 次 |
最近记录: |