C# WPF MVVM面板与图表控件切换花费的时间太长
我有一个WPF界面,其中有一个面板,用于显示您从按钮栏中选择的特定选项的详细信息。例如,如果单击“信息”按钮,详细信息窗格将填充一个InfoDetailUserControl。如果单击图形按钮,它将填充GraphDetailUserControl 我这样做的方式是将每个细节面板定义为用户控件。然后,我为驱动数据的每个用户控件创建了一个ViewModel。细节面板由ContentControl表示,为了显示相关面板,我将其内容设置为表示要显示的UserControl的ViewModel。然后,我有许多将ViewModel映射到UserControl的DataTemplates,这样当您将VM添加到ContentControl时,它会查找该类型的datatemplate并显示相关的UserControl 示例数据模板C# WPF MVVM面板与图表控件切换花费的时间太长,c#,wpf,mvvm,C#,Wpf,Mvvm,我有一个WPF界面,其中有一个面板,用于显示您从按钮栏中选择的特定选项的详细信息。例如,如果单击“信息”按钮,详细信息窗格将填充一个InfoDetailUserControl。如果单击图形按钮,它将填充GraphDetailUserControl 我这样做的方式是将每个细节面板定义为用户控件。然后,我为驱动数据的每个用户控件创建了一个ViewModel。细节面板由ContentControl表示,为了显示相关面板,我将其内容设置为表示要显示的UserControl的ViewModel。然后,我有
<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,使其只经过一次初始化,或者有没有一种方法可以简单地加快图表控件的加载
非常感谢