XAML のコンバーターに既にバインドされている FrameworkElement があるとします。プログラム的に、実行時に既存のバインディングにバインディングを追加したいと考えています。たとえば、コントロールのロードされたイベントで、効果的にマルチバインディングにします。
(たとえば) Visibility プロパティで既存のバインディングを取得するにはどうすればよいでしょうか。
XAML のコンバーターに既にバインドされている FrameworkElement があるとします。プログラム的に、実行時に既存のバインディングにバインディングを追加したいと考えています。たとえば、コントロールのロードされたイベントで、効果的にマルチバインディングにします。
(たとえば) Visibility プロパティで既存のバインディングを取得するにはどうすればよいでしょうか。
あなたは次のようなことをするかもしれません:
var oldBinding = BindingOperations.GetBinding(element, UIElement.VisibilityProperty);
var newBinding = new MultiBinding { Converter = ... };
var firstBinding = new Binding
{
Path = oldBinding.Path,
Source = oldBinding.Source // or RelativeSource or ElementName
};
var secondBinding = new Binding
{
...
};
newBinding.Bindings.Add(firstBinding);
newBinding.Bindings.Add(secondBinding);
BindingOperations.SetBinding(element, UIElement.VisibilityProperty, newBinding);