2015-03-16 2 views
1

Есть ли способ иметь DataGrid со столбцом в режиме ReadOnly, но с Caret Visible? Как и в текстовом поле при использовании свойства IsReadOnlyCaretVisible? Если вы установили свойство IsReadOnly, столбец отключится, и невозможно щелкнуть по ячейке.Как сделать DataGridColumn ReadOnly но с CaretVisible?

<DataGrid ItemsSource="{Binding Customers}" AutoGenerateColumns="False"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Binding="{Binding Name}"></DataGridTextColumn> 
      <DataGridTextColumn Binding="{Binding Income}" IsReadOnly="True"></DataGridTextColumn> 
     </DataGrid.Columns> 
</DataGrid> 
+0

Возможно, вы можете возиться со своим шаблоном для достижения чего-то, но я не уверен в этом. Единственное решение, которое приходит мне сейчас, - это просто не устанавливать свойство IsReadOnly и просто блокировать любые входные данные (с клавиатуры и буфера обмена). –

+0

@EugenePodskal У меня есть пользовательский столбец, который наследует от DataGridTextColumn, и я не устанавливаю свойство IsReadOnly столбца, и я устанавливаю IsReadOnly и IsReadOnlyCaretVisible из внутреннего текстового поля, однако бывают случаи, например, когда вы копируете и вставляете, или когда вы выбираете столбец и нажимаете цифру, которая преуспевает при изменении Контента. Я не знаю, что еще нужно изменить или какие события мне нужно перехватить, чтобы этого не случилось. – Dzyann

+0

О, я был немного невнимателен, читая вопрос. В таком случае вы можете попробовать решение на основе шаблонов, уже отправленное в качестве ответа. –

ответ

1

Вы можете создать DataGridTemplateColumn с TextBox. см. ниже код.

<DataGridTemplateColumn Header="Name"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <TextBox Text="{Binding Name}" IsReadOnly="True" IsReadOnlyCaretVisible="True"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate>     
      </DataGridTemplateColumn> 
+0

А, я вижу, поэтому вместо наследования из DataGridTextColumn мне нужно было бы наследовать от DataGridTemplateColumn? – Dzyann

Смежные вопросы