public ReferenceWindow(BaseReferenceWindowModelView referenceWindowModelView, Func <Task <List <TreeNavigationItem> > > actionToGetProposals)
     : this()
 {
     DataContext = referenceWindowModelView;
     _referenceWindowModelView = referenceWindowModelView;
     _actionToGetProposals     = actionToGetProposals;
 }
        public static TreeNavigationItem OpenReferenceWindow(Func <Task <List <TreeNavigationItem> > > actionToGetProposals)
        {
            BaseReferenceWindowModelView referenceWindowModelView = new BaseReferenceWindowModelView();

            referenceWindowModelView.LoadProposals(new List <TreeNavigationItem>()
            {
                new TreeNavigationItem(Guid.Empty, "Loading...", NavigationType.FOLDER)
            });
            ReferenceWindow baseReferenceWindow = new ReferenceWindow(referenceWindowModelView, actionToGetProposals);

            baseReferenceWindow.Owner = Application.Current.MainWindow;
            baseReferenceWindow.WindowStartupLocation = WindowStartupLocation.CenterOwner;
            if (baseReferenceWindow.ShowDialog() == true)
            {
                return(referenceWindowModelView.SelectedObject);
            }
            return(null);
        }