Beispiel #1
0
        internal FrameworkElement GetIncidentControl(NavigationModelNodeBase navigationNode)
        {
            //Form Node
            FormView formView = NavigationModel.FindView(null, navigationNode.Location,
                                                         FindViewCriteria.ViewIsAssociatedToNode) as FormView;

            if (formView != null)
            {
                if (formView.CheckAccess())
                {
                    return(formView.Form as FrameworkElement);
                }
                else
                {
                    FrameworkElement control = null;
                    using (AutoResetEvent autoreset = new AutoResetEvent(false))
                    {
                        EventHandler delegateHandleFormView =
                            delegate(object sender, EventArgs e)
                        {
                            control = formView.Form as FrameworkElement;
                            autoreset.Set();
                        };

                        formView.Dispatcher.BeginInvoke(
                            System.Windows.Threading.DispatcherPriority.Normal,
                            delegateHandleFormView,
                            null,
                            null);
                        autoreset.WaitOne();
                    }
                    return(control);
                }
            }
            return(null);
        }