Impossible de modifier dans celleditingtemplate

la programmation

[ad_1]

J’ai un DataGrid avec un DataGridTemplateColumn. Je ne parviens pas à modifier le champ Commentaire. Lorsque je double-clique sur un champ Commentaire, l’arrière-plan change comme prévu. LightSalmon et le contenu de la propriété liée Comment s’affiche mais je ne peux pas modifier le contenu.

Ce que j’ai essayé :

<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>

Solution 1

Gerry a donné la solution, pour développer cela –

Le TextBlock est un contrôle en lecture seule, et c’est pourquoi vous ne pouvez pas modifier le contenu lorsque vous double-cliquez dessus – MS Apprendre | Classe TextBlock[^]

Pour utiliser l’édition, vous devez utiliser un contrôle modifiable tel que « TextBox » dans votre « 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>

Le ‘TextBox’ dans ‘CellEditingTemplate’ permet la saisie de votre utilisateur, et ‘UpdateSourceTrigger=PropertyChanged’ garantit que la propriété source est mise à jour au fur et à mesure que votre utilisateur tape.

[ad_2]

コメント

Titre et URL copiés