示例#1
0
 private MultiBindingExpression(object[] dataItems, MultiBinding parentMultiBinding, Action updateSource)
 {
     DataItems          = dataItems;
     ParentMultiBinding = parentMultiBinding;
     _updateSource      = updateSource;
 }
示例#2
0
        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;
        }