gpt4 book ai didi

c# - 在 DataTemplate 中声明的 View 在从 Tab 更改为 Tab 时继续创建

转载 作者:行者123 更新时间:2023-12-03 10:28:44 27 4
gpt4 key购买 nike

我一直在遵循 MVVM 模式来设计我的应用程序。然而,我注意到一件奇怪的事情。我有一个 Tab 控件,其中我已将 ItemsSource 指定为 的绑定(bind)工作区 来自 MainViewModel。在项目中,我一直在添加不同的 ViewModel。我已经为 ViewModel 数据类型定义了 DataTemplate。

但是,当我单击选项卡时,每次都会创建一个新 View 。

我在这里发布的示例代码。

<Grid.Resources>

<DataTemplate DataType="{x:Type spavm:DashboardViewModel}">
<UIDashboard:DashboardView/>
</DataTemplate>

</Grid.Resources>

<dx:DXTabControl Grid.Row="2" Margin="5"
Name="MainContentTabs"
ItemsSource="{Binding WorkSpaces}"
ItemHeaderTemplate="{StaticResource WorkspaceItemTemplate}">
</dx:DXTabControl>

从上面看,如果我切换到任何其他选项卡并重新访问我的 DashboardView,它会再次创建。

我错过了什么吗?我只需要一个 DashboardView 实例。我怎样才能做到这一点。

最佳答案

如前所述,这是 DevExpress 设计的。但是,有一个名为 DestroyContentOnTabSwitching 的属性。你可以设置为假。 DX Documentation .

如果您的 View 创建起来很昂贵,您还可以考虑重构昂贵的逻辑来缓存它。

关于c# - 在 DataTemplate 中声明的 View 在从 Tab 更改为 Tab 时继续创建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21003611/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com