Чтобы ответить на ваш точный вопрос, вам нужно получить фактическое CheckBox
, которое генерирует DataGridCheckBoxColumn
. Вот пример функции. Я не знаю, какой тип коллекции у вас ItemsSource
, поэтому я назвал свою TestObject
и установил ItemsSource
на IList<TestObject>
.
static void UpdateBindingTarget(DataGrid dg, DataGridCheckBoxColumn col, TestObject item)
{
DataGridRow row = (DataGridRow)dg.ItemContainerGenerator.ContainerFromItem(item);
CheckBox cb = (CheckBox)col.GetCellContent(row);
var be = cb.GetBindingExpression(CheckBox.IsCheckedProperty);
if (be != null) { be.UpdateTarget(); }
}
Настоящий вопрос: почему вы хотели бы сделать это в первую очередь. Вышесказанное - не то, что я считаю хорошей практикой, это скорее хакерский обходной путь. Если вам нужен источник привязки для обновления цели, он должен либо наследовать DependencyObject
и использовать DependencyProperty
, либо реализовать INotifyPropertyChanged
и вызвать событие PropertyChanged
.