Saving a collection of WPF user control layout into an XPS document
I don't really see the sense of splitting this into different sections. Also some of them only add overhead which isn't needed at all.  

For each MyViewModelVM in List&lt;MyViewModelVM&gt; you are creating a MyViewV with it as DataContext which is in the next loop added as a child to a FixedPage which then is added as a child to a PageContent which is then added to the Pages of the FixedDocument.  

This can be simplified to  

public static void CreatePortableFile(List&lt;MyViewModelVM&gt; myViewModels, string path)
{

    Dispatcher.CurrentDispatcher.Invoke(new Action(() =&gt;
    {
        FixedDocument fixedDoc = new FixedDocument();

        foreach (MyViewModelVM item in myViewModels)
        {
            MyViewV view = new MyViewV() { DataContext = item };

            FixedPage newFixedPage = new FixedPage();
            newFixedPage.Children.Add(view);

            PageContent newPageContent = new PageContent();
            ((System.Windows.Markup.IAddChild)newPageContent).AddChild(newFixedPage);
            pageContents.Add(newPageContent);

            fixedDoc.Pages.Add(newPageContent);
        }
        WriteToXps(path, fixedDoc)

    }), DispatcherPriority.Loaded);
}  


EDIT After reading the comment, I digged a little bit more into this. As this is similiar to printing with datacontext this should fix the issue:  

public static void CreatePortableFile(List&lt;MyViewModelVM&gt; myViewModels, string path)
{

    FixedDocument fixedDoc = new FixedDocument();

    foreach (MyViewModelVM item in myViewModels)
    {
        MyViewV view = new MyViewV() { DataContext = item };

        FixedPage newFixedPage = new FixedPage();
        newFixedPage.Children.Add(view);

        PageContent newPageContent = new PageContent();
        ((System.Windows.Markup.IAddChild)newPageContent).AddChild(newFixedPage);
        pageContents.Add(newPageContent);

        fixedDoc.Pages.Add(newPageContent);
    }

    Dispatcher.CurrentDispatcher.Invoke (new Action (delegate { }), DispatcherPriority.ApplicationIdle, null);

    WriteToXps(path, fixedDoc)
}   


A detailed explaination can be found here