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