C# WPF MVVM面板与图表控件切换花费的时间太长

C# WPF MVVM面板与图表控件切换花费的时间太长,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个WPF界面,其中有一个面板,用于显示您从按钮栏中选择的特定选项的详细信息。例如,如果单击“信息”按钮,详细信息窗格将填充一个InfoDetailUserControl。如果单击图形按钮,它将填充GraphDetailUserControl 我这样做的方式是将每个细节面板定义为用户控件。然后,我为驱动数据的每个用户控件创建了一个ViewModel。细节面板由ContentControl表示,为了显示相关面板,我将其内容设置为表示要显示的UserControl的ViewModel。然后,我有

我有一个WPF界面,其中有一个面板,用于显示您从按钮栏中选择的特定选项的详细信息。例如,如果单击“信息”按钮,详细信息窗格将填充一个InfoDetailUserControl。如果单击图形按钮,它将填充GraphDetailUserControl

我这样做的方式是将每个细节面板定义为用户控件。然后,我为驱动数据的每个用户控件创建了一个ViewModel。细节面板由ContentControl表示,为了显示相关面板,我将其内容设置为表示要显示的UserControl的ViewModel。然后,我有许多将ViewModel映射到UserControl的DataTemplates,这样当您将VM添加到ContentControl时,它会查找该类型的datatemplate并显示相关的UserControl

示例数据模板

  <DataTemplate DataType="{x:Type RunResults:SimpleCalcInfoResultViewModel}">
        <Views:SimpleCalcInfoResult />
    </DataTemplate>

    <DataTemplate DataType="{x:Type RunResults:TradeResultViewModel}">
        <Views:TradeResult />
    </DataTemplate>

    <DataTemplate DataType="{x:Type RunResults:GraphResultViewModel}">
        <Views:GraphResult />
    </DataTemplate>

    <DataTemplate DataType="{x:Type RunResults:NoResultViewModel}">
        <Views:NoResult />
    </DataTemplate>

这一切都很好,但问题是每次更改细节面板的内容时,都会向其提供ViewModel类,然后它会动态查找与VM类型匹配的datatemplate,并创建该UserControl的实例。然后,当您切换到其他类型时,它将丢弃该UserControl。因此,如果您一直在信息和图形视图之间切换,它会在每次返回时不断重新创建GraphUserControl,它不会从第一次加载时缓存它,而只是再次重新显示相同的视图

我遇到的问题是,在InitializeComponent()调用中,Graph UserControl初始化需要3-4秒。我假设这只是WPF toolkit图表控件速度慢,但这意味着用户每次返回图形视图时必须等待4秒,这并不理想

有没有一种方法可以轻松缓存创建的第一个UserControl,使其只经过一次初始化,或者有没有一种方法可以简单地加快图表控件的加载

非常感谢