Привязка DataTrigger к свойству IsChecked флажка

Я считаю, что то, что я пытаюсь сделать, достаточно «просто», поэтому я, вероятно, просто пропустил что-то очевидное.

В DataGrid я пытаюсь привязать CheckBox так, чтобы при его проверке цвет фона его строки менялся. Каждая строка имеет CheckBox. Я в основном реализую свою собственную функцию выбора нескольких строк (это требование продукта, не спрашивайте), и у меня все остальное работает, кроме этой визуальной индикации выбранной строки.

Я читал этот вопрос, но где мне не хватает ответа, так это на то, что именно нужно указать как "BooleanPropertyOnObjectBoundToRow". Я также просмотрел этот вопрос и попытался возиться с RelativeSource, но безуспешно.

Я создаю свою сетку в отделенном коде, но вот мой текущий стиль, используемый для строк (в котором определен мой DataTrigger):


Теперь в отделенном коде я создаю DataGridTemplateColumn и использую Factory для создания мои флажки, и вот мой код, относящийся к Binding:

Binding checkBinding = new Binding("IsChecked");
checkBinding.Mode = BindingMode.OneWayToSource;
RelativeSource relativeSource = new RelativeSource();
relativeSource.AncestorType = typeof(DataGridRow);
relativeSource.Mode = RelativeSourceMode.FindAncestor;
checkBinding.RelativeSource = relativeSource;
factory.SetBinding(CheckBox.IsCheckedProperty, checkBinding);

Что может представлять интерес, так это тот факт, что я установил ItemsSource моей DataGrid в DataTable, но мой столбец CheckBox НЕ имеет соответствующего столбца в DataTable. Я просто добавляю столбец шаблона отдельно, может быть, на это влияет отсутствие основного хранилища?

В любом случае, если вам нужна дополнительная информация, дайте мне знать.Спасибо!

6
задан Community 23 May 2017 в 11:51
поделиться