WPF + TabControl 作用域
WPF + TabControl Scope
在我的 WPF 项目中,我有一个带有多个选项卡项的 TabControl。
每个 Tab Item 都有一个 WPF 控件(视图),每个视图都有一个对应的 ViewModel。
每次我单击更改选项卡项时,我注意到 control/view 在我再次单击选项卡项时被卸载并再次加载,对应的 ViewModel 保留在内存中。
我正在尝试构建一个简单的 RemoteDesktop/RDP 客户端,每个计算机连接使用 1 个选项卡项,所以问题是当我更改选项卡项时,连接消失,因为视图已卸载...
我研究了一些示例,但其中大部分都是在 Winforms 之上构建的,其实现与 WPF 不同。
所以我在想,当我从 TabItem 更改时,是否可以防止 View 超出范围?
有人知道一些使用 WPF 进行选项卡式 RDP 连接的在线示例吗?
谢谢。
更新 - 正在使用数据模板
<DataTemplate DataType="{x:Type vm:DashboardViewModel}">
<v:DashboardView />
</DataTemplate>
我在这里找到了解决方案
WPF TabControl - Preventing Unload on Tab Change?
replace
<TabItem Header="Tab1" Content="{Binding Tab1ViewModel}" />
by
<TabItem Header="Tab1">
<ContentPresenter Content="{Binding Tab1ViewModel}" />
</TabItem>
在我的 WPF 项目中,我有一个带有多个选项卡项的 TabControl。 每个 Tab Item 都有一个 WPF 控件(视图),每个视图都有一个对应的 ViewModel。 每次我单击更改选项卡项时,我注意到 control/view 在我再次单击选项卡项时被卸载并再次加载,对应的 ViewModel 保留在内存中。
我正在尝试构建一个简单的 RemoteDesktop/RDP 客户端,每个计算机连接使用 1 个选项卡项,所以问题是当我更改选项卡项时,连接消失,因为视图已卸载...
我研究了一些示例,但其中大部分都是在 Winforms 之上构建的,其实现与 WPF 不同。
所以我在想,当我从 TabItem 更改时,是否可以防止 View 超出范围?
有人知道一些使用 WPF 进行选项卡式 RDP 连接的在线示例吗? 谢谢。
更新 - 正在使用数据模板
<DataTemplate DataType="{x:Type vm:DashboardViewModel}">
<v:DashboardView />
</DataTemplate>
我在这里找到了解决方案
WPF TabControl - Preventing Unload on Tab Change?
replace
<TabItem Header="Tab1" Content="{Binding Tab1ViewModel}" />
by
<TabItem Header="Tab1">
<ContentPresenter Content="{Binding Tab1ViewModel}" />
</TabItem>