Ejemplo n.º 1
0
        void HandleCheckBoxAction(object sender, RibbonEventArgs e)
        {
            var methodName = e.Control.Tag + "_Click";

            Tracer.WriteTraceMethodLine(DELEGATE_TO_VIEW, methodName);
            var flags = BindingFlags.Instance | BindingFlags.NonPublic;
            var mi    = RibbonView.GetType().GetMethod(methodName, flags);

            if (mi != null)
            {
                var checkBoxAction = (Action <object, RibbonEventArgs>)
                                     Delegate.CreateDelegate(
                    typeof(Action <object, RibbonEventArgs>), RibbonView, mi);

                checkBoxAction(sender, e);

                switch (e.Control.Tag)
                {
                case "PageTitle":
                    RibbonView.PageTitleControls.ForEach
                        (item => RibbonUI.InvalidateControl(item.ToString()));
                    break;

                case "RuleLinesSpacing":
                    RibbonView.RuleLinesSpacingControls.ForEach
                        (item => RibbonUI.InvalidateControl(item.ToString()));
                    RibbonUI.InvalidateControl("No_Ruled_Lines");
                    break;
                }
            }
            else
            {
                Tracer.WriteErrorLine("Method '{0}' not found", methodName);
            }
        }
Ejemplo n.º 2
0
        TResult DelegateToView <TResult>(
            Office.IRibbonControl control, string methodName)
        {
            var result = default(TResult);
            var flags  = BindingFlags.Instance | BindingFlags.NonPublic;
            var mi     = RibbonView.GetType().GetMethod(methodName, flags);

            if (mi != null)
            {
                var viewFunc = (Func <Office.IRibbonControl, TResult>)
                               Delegate.CreateDelegate(
                    typeof(Func <Office.IRibbonControl, TResult>), RibbonView, mi);

                return(viewFunc(control));
            }
            Tracer.WriteErrorLine("Method '{0}' not found", methodName);
            return(result);
        }