Все встроенные столбцы DataGridColumns имеют два стиля.Один, когда ячейка не находится в режиме редактирования, а другой - когда ячейка находится в режиме редактирования.Обычно в режиме без редактирования просто отображается текстовый блок, а не тот элемент управления, который вы ожидаете (ComboBox, TextBox и т. Д.).И как только вы начинаете редактировать ячейку, текстовый блок заменяется на соответствующий элемент управления.Если для сетки данных установлено значение IsReadOnly = true, то это означает, что ячейки никогда не переходят в режим редактирования, и именно такое поведение вы наблюдаете.
При создании DataGridTemplateColumn вам необходимо заменить все встроенные сетки данных.логика.Например, если вы хотите, чтобы ваш шаблонный столбец был доступен только для чтения, когда сетка данных доступна только для чтения, то вам необходимо вручную связать два значения вместе.И если вы хотите получить то же поведение, что и встроенные столбцы (текстовый блок, когда ячейка не находится в режиме редактирования), то вам придется использовать триггеры для предоставления соответствующих шаблонов управления.
Также обратите внимание, что если выИспользует встроенный столбец (например, DataGridCheckBoxColumn), и для него указывается ElmentStyle (например, для центрирования checkBoxes), тогда все ячейки столбца доступны для редактирования, несмотря на то, что для сетки данных установлено значение IsReadOnly = true.Это происходит потому, что при указании ElmentStyle вы заменяете встроенный стиль, который содержит логику, позволяющую сделать флажки доступными только для чтения, когда сетка данных доступна только для чтения.