2012-01-20 3 views
0

В моем примере проекта у меня есть набор данных, который заполняется значениями с сервера. Ряд datagrid может быть выбран с использованием мыши. Но в моем коде этот выбор строки должен произойти только после нажатия кнопки «активировать». Как мне это сделать?Отключить автоматический выбор строки datagrid с помощью мыши или клавиатуры

Я пробовал свойство IsEnabled для datagrid, но это приводит к тому, что весь datagrid неактивен (текст и заголовки выделены серым цветом).

Пожалуйста, помогите мне.

ответ

1

Я думаю, что должно работать:

datagrid.SelectionChanged += (obj, args) => 
    Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(() => 
    datagrid.UnselectAll())); 

Альтернативой модифицирует стили DataGrid. Во всяком случае, вам также нужно учитывать ваше «активированное» значение.

+0

Спасибо @ Darjan, это сработало. Теперь, нажав кнопку «активировать» (ее кнопка переключения), она должна сохранить исходное состояние (например, строки данных могут быть выбраны). Я попытался установить ** IsHitTestVisible ** в значение false. Но ... :( – Kris

+0

Доступно только свойство SelectedItem. Свойство SelectedItems для установки нескольких выбранных элементов недоступно, вам, вероятно, нужно будет перенести его вручную в пользовательский элемент управления, полученный из DataGrid, и использовать некоторую логику для сохранения ранее выбранных элементов где-то. – doblak

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