No se puede editar en la plantilla de edición de celda

programación

[ad_1]

Tengo un DataGrid con DataGridTemplateColumn. No puedo editar el campo Comentario. Cuando hago doble clic en un campo Comentario, el fondo cambia como se esperaba. LightSalmon y el contenido de los bienes vinculados Comment Se muestra pero no puedo editar el contenido.

Lo que he probado:

<DataGridTemplateColumn IsReadOnly="False" Header="Comment" MinWidth="80">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock
              Background="LightGray"
                Margin="5"
                MinHeight="35"
                TextAlignment="Center"
                Text="{Binding Comment, Mode=OneWay}"
                IsEnabled="True"
                />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBlock
              Background="LightSalmon"
                Opacity="0.5"
                Margin="5"
                MinHeight="35"
                TextAlignment="Center"
                Text="{Binding Comment}"
                IsEnabled="True"
                />
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>

Solución 1

Gerry dio la solución, para dar más detalles:

TextBlock es un control de solo lectura y es por eso que no puedes editar el contenido cuando haces doble clic en él. MS aprender | Clase de bloque de texto[^]

Para utilizar la edición, debe utilizar un control editable como ‘TextBox’ en su ‘CellEditingTemplate’.

XAML
<DataGridTemplateColumn IsReadOnly="False" Header="Comment" MinWidth="80">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock
                Background="LightGray"
                Margin="5"
                MinHeight="35"
                TextAlignment="Center"
                Text="{Binding Comment, Mode=OneWay}"
                IsEnabled="True"
            />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBox
                Background="LightSalmon"
                Margin="5"
                MinHeight="35"
                TextAlignment="Center"
                Text="{Binding Comment, UpdateSourceTrigger=PropertyChanged}"
                IsEnabled="True"
            />
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

El ‘TextBox’ en ‘CellEditingTemplate’ permite la entrada de su usuario, y ‘UpdateSourceTrigger=PropertyChanged’ asegura que la propiedad de origen se actualice a medida que el usuario escribe.

[ad_2]

コメント

Título y URL copiados