Không thể chỉnh sửa trong mẫu chỉnh sửa ô

lập trình

[ad_1]

Tôi có DataGrid với DataGridTemplateColumn. Tôi không thể chỉnh sửa trường Bình luận. Khi tôi nhấp đúp vào trường Nhận xét, nền sẽ thay đổi thành LightSalmon và nội dung của thuộc tính ràng buộc Comment được hiển thị nhưng tôi không thể chỉnh sửa nội dung.

Những gì tôi đã thử:

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

Giải pháp 1

Gerry đã đưa ra giải pháp, để giải thích chi tiết –

TextBlock là điều khiển chỉ đọc và đó là lý do tại sao bạn không thể chỉnh sửa nội dung khi nhấp đúp vào nó – MS Tìm hiểu | Lớp khối văn bản[^]

Để sử dụng tính năng chỉnh sửa, bạn nên sử dụng điều khiển có thể chỉnh sửa, chẳng hạn như ‘TextBox’ trong ‘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’ trong ‘CellEditingTemplate’ cho phép người dùng nhập dữ liệu và ‘UpdateSourceTrigger=PropertyChanged’ đảm bảo rằng thuộc tính nguồn được cập nhật theo kiểu người dùng của bạn.

[ad_2]

コメント

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