[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’.
<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]
コメント