لا يمكن التحرير في قالب التحرير الخلوي


لدي DataGrid مع DataGridTemplateColumn. لا أستطيع تعديل حقل التعليق. عندما أنقر نقرًا مزدوجًا فوق حقل التعليق، تتغير الخلفية بشكل متوقع LightSalmon ومحتوى الممتلكات المربوطة Comment يظهر ولكن لا يمكنني تحرير المحتوى.

ما حاولت:

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

الحل 1

أعطى جيري الحل، لتوضيح الأمر –

يعد TextBlock عنصر تحكم للقراءة فقط، ولهذا السبب لا يمكنك تحرير المحتوى عند النقر المزدوج عليه – تعلم MS | فئة كتلة النص[^]

لاستخدام التحرير، يجب عليك استخدام عنصر تحكم قابل للتحرير مثل “TextBox” في “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>

يسمح “TextBox” في “CellEditingTemplate” بإدخال المستخدم الخاص بك، ويتأكد “UpdateSourceTrigger=PropertyChanged” من تحديث خاصية المصدر أثناء كتابة المستخدم الخاص بك.

コメント

タイトルとURLをコピーしました