private MultiBindingExpression(object[] dataItems, MultiBinding parentMultiBinding, Action updateSource) { DataItems = dataItems; ParentMultiBinding = parentMultiBinding; _updateSource = updateSource; }
internal static MultiBindingExpression CreateFrom(MultiBinding parentMultiBinding, Action updateSource) { var dataItems = parentMultiBinding.Bindings.Select(binding => binding.Source).ToArray(); return(new MultiBindingExpression(dataItems, parentMultiBinding, updateSource)); }
private static void SaveMultibindingInfoForFutureAccess(MultiBindingTargetInfo multiBindingTargetInfo, MultiBinding multiBinding) { var frameworkElement = multiBindingTargetInfo.FrameworkElement; RoutedEventHandler unloadedEventHandler = null; unloadedEventHandler += (sender, args) => { frameworkElement.Unloaded -= unloadedEventHandler; MultiBindings.Remove(multiBindingTargetInfo); }; frameworkElement.Unloaded += unloadedEventHandler; MultiBindings[multiBindingTargetInfo] = multiBinding; }