Возможно, возможно использовать DataGridTemplateColumn:
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox IsReadOnly="True" Text="{Binding YourProperty,Mode=OneWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
. Это также работает с флажками, добавляет флажок, привязывает его IsChecked и использует в качестве содержимого TextBox, для которого установлено значение IsReadOnly.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding YourBooleanValue}">
<TextBox IsReadOnly="True" Text="YourCopyableTextOrABindingToText"/>
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Если вы хотите, чтобы флажок был доступен только для чтения, установите для его свойства Enabled значение false.Однако в этом случае вы должны объявить TextBox не как дочерний элемент, а как родственный элемент CheckBox (используйте сетку или StackPanel) для этого.
Если вы хотите сделать данные доступными только для чтения для всей DataGrid, используйте:
<DataGrid IsReadOnly="True">
Это также возможно для столбцов:
<DataGridTextColumn IsReadOnly="True">
Если вы хотите определить его для каждой строки, вы должны использовать DataGridTemplateColumn
s и связать IsReadOnly-Объект редактирования редактирования.
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox IsReadOnly="{Binind YourReadOnlyProperty}" Text="{Binding YourProperty,Mode=OneWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>