gpt4 book ai didi

c# - wpf datagridcell 聚焦时进入 editmodus

转载 作者:太空宇宙 更新时间:2023-11-03 12:47:55 25 4
gpt4 key购买 nike

我有一个简单的 DataGrid,它有 1 个可编辑列和 1 个只读列。

当我在 editmodus 中按 TAB 或 ENTER 时,下一个单元格将获得焦点。但是下一个单元格不会自动进入 editmodus

<DataGrid Name="DataGridMain" AutoGenerateColumns="False" SelectionUnit="Cell" SelectionMode="Single">
<DataGrid.Columns>

<DataGridTemplateColumn Header="Code">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Code}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="IsTabStop" Value="False"/>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>

<DataGridTemplateColumn Header="Description">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding Description}" Background="LightGray"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

</DataGrid.Columns>
</DataGrid>

聚焦单元格时进入 editmodus 的最简单方法是什么?

最佳答案

我最终简单地订阅了数据网格的 SelectedCellsChanged 事件,并调用了 BeginEdit()。

<DataGrid Name="DataGridMain" SelectedCellsChanged="GridMainElements_SelectedCellsChanged" AutoGenerateColumns="False" SelectionUnit="Cell" SelectionMode="Single" >
...
</DataGrid>

事件:

private void GridMainElements_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
Debug.WriteLine("Selected cells changed");

if(e != null && e.AddedCells != null && e.AddedCells.Count == 1)
{
DataGridCellInfo selectedCell = e.AddedCells[0];

if(selectedCell.Column == ColumnFormula || selectedCell.Column == ColumnNote)
{
GridMainElements.BeginEdit();
}
}
}

关于c# - wpf datagridcell 聚焦时进入 editmodus,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36599273/

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