Как сделать WPF DataGridCell только для чтения?

Я понимаю, что вы можете сделать готовым только весь DataGrid или целый столбец (IsReadOnly = true). Однако на уровне ячейки это свойство готово только. Но мне действительно нужен такой уровень детализации. Есть блог о добавлении IsReadOnly в строку путем изменения исходного кода в старые времена, когда DataGrid был общественным достоянием, но теперь у меня нет исходного кода для DataGrid. Какой' s обходной путь?

Отключение ячейки (IsEnabled = false) почти удовлетворяет мою потребность. Но проблема в том, что вы не можете даже щелкнуть отключенную ячейку, чтобы выбрать строку (у меня есть режим полного выбора строки).

РЕДАКТИРОВАТЬ: Поскольку никто не ответил на этот вопрос, я думаю, это непростое решение. Вот возможный обходной путь: сделайте ячейку недоступной для редактирования. Единственная проблема в том, что щелчок по ячейке не выбирает строку. Я только что заметил, что событие MouseDown или MouseUp DataGrid по-прежнему запускается при нажатии отключенной ячейки. В этом обработчике событий, если бы я мог определить строку, по которой он щелкнул, я мог бы выбрать строку программно. Однако я не мог понять, как найти нижележащую строку из DataGrid.InputHitTest . Может кто-нибудь дать мне совет?

12
задан newman 4 October 2010 в 02:20
поделиться