Я понимаю, что вы можете сделать весь DataGrid или целый столбец готово (IsReadOnly = true). Однако на уровне ячейки это свойство будет только готово. Но мне нужен этот уровень детализации. Существует блог о добавлении IsReadOnly в строку путем изменения исходного кода в старые времена, когда DataGrid был общедоступным, но теперь у меня нет исходного кода для DataGrid. Что обходное решение?Как сделать WPF DataGridCell ReadOnly?
Выполнение деактивации ячейки (IsEnabled = false) почти соответствует моей потребности. Но проблема в том, что вы не можете даже щелкнуть заблокированную ячейку, чтобы выбрать строку (у меня есть режим выбора полной строки).
EDIT: Поскольку никто не ответил на этот вопрос, поэтому я думаю, что это нелегкое решение. Вот возможное обходное решение: сделайте ячейку неотредактированной. Единственная проблема заключается в том, что нажатие на ячейку не выбирает строку. Я только что заметил, что событие MouseDown или MouseUp для DataGrid все еще запущено, когда щелкнула заблокированная ячейка. В этом обработчике событий, если бы я мог найти строку, которую он нажал, я мог бы выбирать строку программно. Однако я не мог понять, как найти базовую строку от DataGrid.InputHitTest
. Может кто-нибудь, пожалуйста, дайте мне подсказку?
Рекл, на самом деле это то, что я придумал. Единственное, что я пропустил, это то, что в целом я хотел бы показывать ячейки только для чтения в другом цвете. Итак, я принимаю твое. Я надеюсь, что Microsoft может представить это свойство уровня ячейки в следующей версии. – newman
@Recle, каков ваш исходный тип данных для привязки сетки?В случае, если вы используете datatable для заполнения типа DataView как DataGrid ItemSource, а затем вы хотите получить доступ к объекту на уровне значения в DataTable, который имеет свойства IsEditable и MyCellValue, как будет выглядеть ваше решение? Спасибо – stenly
@Recle В моем случае у меня есть коллекция источников сетки, и сетки динамически заполняются на основе источника (в ScrollViewer - в свойстве DataTemplate). Спасибо за внимание – stenly