У меня есть сетка данных с переменным количеством столбцов, которые я генерирую программно. Он содержит DataGridTemplateColumns, каждый с DockPanel, содержащим CheckBox и TextBlock.
Код привязки:
Binding bindingPicked = new Binding(string.Format("Prices[{0}].Picked", i));
bindingPicked.Mode = BindingMode.TwoWay;
Код CheckBox:
FrameworkElementFactory factoryCheckBox = new FrameworkElementFactory(typeof(CheckBox));
factoryCheckBox.SetValue(CheckBox.IsCheckedProperty, bindingPicked);
Выбранный объект:
private bool _picked;
public bool Picked
{
get { return _picked; }
set { _picked = value; }
}
Когда сетка данных инициализируется, выбранные геттеры вызываются, как и ожидалось. Однако, когда я устанавливаю / снимаю флажок, установщик не вызывается. Чем это вызвано? Я не хочу использовать DependencyProperty, и я не думаю, что это нужно, поскольку мне просто нужно вызвать установщик свойств, когда пользователь нажимает CheckBox.
РЕДАКТИРОВАТЬ: Очевидно, я дебил, я просто забыл
bindingPicked.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
Не стесняйтесь закрыть это.