gpt4 book ai didi

silverlight - 如何在代码中将 Silverlight 3 DataGridCell 置于编辑模式?

转载 作者:行者123 更新时间:2023-12-04 15:49:06 25 4
gpt4 key购买 nike

我希望能够选择 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();
}

我单击按钮并选择了正确的单元格,但它没有在单元格上进行编辑。需要手动点击才能实现。

最佳答案

我不确定您为什么需要使用 VisualTreeManager 找到 DataGridCell,我目前也不知道您将如何正确开始编辑。您可能只需将单元格的视觉状态设置为编辑即可。

 VisualStateManager.GoToState(myDataGridCell, "Editing", true);

我不确定当您执行上述操作时网格的行为方式。如果您需要 DataGrid 来帮助您将更改恢复到一行,您可能会发现事情变得有点糟糕。

“标准”方法是设置 DataGrid SelectedItem属性为由行表示的项目,设置 CurrrentColum DataGridColumn 的属性(property)表示找到单元格的列的对象。然后调用 BeginEdit方法。

关于silverlight - 如何在代码中将 Silverlight 3 DataGridCell 置于编辑模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2131666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com