सेलएडिटिंगटेम्प्लेट में संपादित नहीं किया जा सकता


मेरे पास 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

गेरी ने इसे विस्तार से बताने के लिए समाधान दिया –

टेक्स्टब्लॉक एक रीड-ओनली नियंत्रण है, और इसीलिए जब आप इस पर डबल-क्लिक करते हैं तो आप सामग्री को संपादित नहीं कर सकते – एमएस जानें | टेक्स्टब्लॉक क्लास[^]

संपादन का उपयोग करने के लिए, आपको अपने ‘सेलएडिटिंगटेम्पलेट’ में ‘टेक्स्टबॉक्स’ जैसे संपादन योग्य नियंत्रण का उपयोग करना चाहिए –

एक्सएएमएल
<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>

‘CellEditingTemplate’ में ‘TextBox’ आपके उपयोगकर्ता इनपुट की अनुमति देता है, और ‘UpdateSourceTrigger=PropertyChanged’ यह सुनिश्चित करता है कि स्रोत प्रॉपर्टी आपके उपयोगकर्ता प्रकार के अनुसार अपडेट हो जाती है।

コメント

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