Example #1
0
        public IContentView ShowContent(IContent content, Type viewType)
        {
            if (InvokeRequired)
            {
                return((IContentView)Invoke((Func <IContent, Type, IContentView>)ShowContent, content, viewType));
            }
            else
            {
                if (content == null)
                {
                    throw new ArgumentNullException("Content cannot be null.");
                }
                if (viewType == null)
                {
                    throw new ArgumentNullException("ViewType cannot be null.");
                }

                IContentView view = null;
                if (ShowContentInViewHost)
                {
                    ViewHost viewHost = new ViewHost();
                    viewHost.ViewType = viewType;
                    view = viewHost;
                }
                else
                {
                    view = MainFormManager.CreateView(viewType);
                }

                view.Content = content;
                view.Show();
                return(view);
            }
        }
Example #2
0
        public IContentView ShowContent <T>(T content, bool reuseExistingView, IEqualityComparer <T> comparer = null) where T : class, IContent
        {
            if (content == null)
            {
                throw new ArgumentNullException("Content cannot be null.");
            }
            if (!reuseExistingView)
            {
                return(ShowContent(content));
            }

            IContentView view = null;

            if (comparer == null)
            {
                view = Views.OfType <IContentView>().Where(v => (v.Content as T) == content).FirstOrDefault();
            }
            else
            {
                view = Views.OfType <IContentView>().Where(v => comparer.Equals((v.Content as T), content)).FirstOrDefault();
            }

            if (view == null)
            {
                view = ShowContent(content);
            }
            else
            {
                view.Show();
            }

            return(view);
        }