Я хочу создать привязку только один раз, но продолжать изменять ее Source
.Change Binding Source Issue
Вот мой код.
public static readonly DependencyProperty TempDummyProperty =
DependencyProperty.Register("TempDummy", typeof(object), typeof(Helper), new PropertyMetadata(null));
public object Source
{
get; set;
}
public object GetValueFromBinding(object data)
{
if (this.BindingData == null)
{
Binding b = new Binding();
b.Path = this.BindingPath;
b.Source = this.Source;
BindingOperations.SetBinding(this, TempDummyProperty, b);
this.BindingData = b;
}
this.Source = data;
BindingExpression be = BindingOperations.GetBindingExpression(this, TempDummyProperty);
be.UpdateTarget();
return this.GetValue(TempDummyProperty);
}
Однако, когда я вызываю этот метод, я всегда возвращаю null.
GetValueFromBinding(this.DataContext);
Кажется, что привязка не замечает, что источник был изменен.
Как получить это прямо, не создавая новый объект привязки?
Я изменяю свойство source моего вспомогательного объекта. Так же, как и обмен данными datacontext и привязка, все равно моя работа по обмену. Это не так :-( –
Но вы даже не обновляете источник привязки ... см. Обновленный ответ. –
Я знаю, что я не вопрос, как это сделать? –