[ad_1]
DataGridTemplateColumn を持つ DataGrid があります。 コメントフィールドを編集できません。 コメントフィールドをダブルクリックすると、背景が期待通りに変わります。 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 ラーニング | テキストブロッククラス[^]
編集を使用するには、「CellEditingTemplate」の「TextBox」などの編集可能なコントロールを使用する必要があります。
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>
「CellEditingTemplate」の「TextBox」はユーザー入力を可能にし、「UpdateSourceTrigger=PropertyChanged」はユーザーが入力するとソース プロパティが更新されるようにします。
[ad_2]
コメント