当我在 DataGridTemplateColumn.CellTemplate 中使用 TextBox 时,DataGrid.BeginningEdit 事件未触发

2024-03-25

我想在数据网格中显示数据。并且只能编辑列中的部分单元格。因此,为此我为一列定义了列模板,如下所示:

<DataGridTemplateColumn>
  <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
      <TextBox IsReadOnly="{Binding IsReadOnly}"  BorderThickness="0" Text="{Binding Value, UpdateSourceTrigger= LostFocus}"></TextBox>
   </DataTemplate>
  </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

因此,根据模型对象的只读属性,单元格是否可编辑。这很好用。但现在我想在用户开始编辑单元格时执行一些操作,所以我为 BeginningEdit 事件创建了一个处理程序DataGrid。但是事件处理程序没有被调用。我用DataGridCell替换了TextBox。现在,事件处理程序被调用,但我无法编辑单元格值。那么,我该如何解决这个问题。


这是细胞Editing当单元格进入编辑模式时应用的模板,即当BeginningEdit事件发生,所以你应该添加你的TextBox对于这个:

<DataGridTemplateColumn>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Value}"></TextBlock>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBox IsReadOnly="{Binding IsReadOnly}"  BorderThickness="0" 
                     Text="{Binding Value, UpdateSourceTrigger= LostFocus}"></TextBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当我在 DataGridTemplateColumn.CellTemplate 中使用 TextBox 时,DataGrid.BeginningEdit 事件未触发 的相关文章

随机推荐