Пример #1
0
        public static DockingWindow CreateWindow(this DockSite dockSite, object viewModel, bool isDocumentWindow = true, object context = null)
        {
            var view = dockSite.EnsureWindow(viewModel, ViewLocator.LocateForModel(viewModel, null, context), isDocumentWindow);

            ViewModelBinder.Bind(viewModel, view, context);

            var haveDisplayName = viewModel as IHaveDisplayName;

            if (haveDisplayName != null && !ConventionManager.HasBinding(view, HeaderedContentControl.HeaderProperty))
            {
                var binding = new Binding("DisplayName")
                {
                    Mode = BindingMode.TwoWay
                };
                view.SetBinding(HeaderedContentControl.HeaderProperty, binding);
            }

            new DockableWindowConductor(dockSite, viewModel, view);
            return(view);
        }