【问题标题】:WPF + TabControl ScopeWPF + TabControl 范围
【发布时间】:2016-11-22 20:07:42
【问题描述】:

在我的 WPF 项目中,我有一个带有多个选项卡项的 TabControl。 每个 Tab Item 都有一个 WPF 控件(视图),每个视图都有一个对应的 ViewModel。 每次单击更改选项卡项时,我注意到再次单击选项卡项时控件/视图已卸载并再次加载,对应的 ViewModel 保留在内存中。

我正在尝试构建一个简单的 RemoteDesktop/RDP 客户端,每个计算机连接使用 1 个选项卡项,所以问题是当我更改选项卡项时,连接消失,因为视图已卸载...

我研究了一些示例,但其中大多数构建在 Winforms 之上,其实现与 WPF 不同。

所以我在想,当我从 TabItem 更改时,是否可以防止 View 超出范围?

是否有人知道一些使用 WPF 进行选项卡式 RDP 连接的在线示例? 谢谢。

更新 - 正在使用数据模板

<DataTemplate DataType="{x:Type vm:DashboardViewModel}">
        <v:DashboardView />
</DataTemplate>

【问题讨论】:

  • 有人吗? - 建议?
  • WPF 大师在哪里? :)
  • 如何实现视图和视图模型之间的关系?我的意思是... TabControlView TabControlViewModel、TabItemView TabItemViewModel 等。你如何实例化它们?
  • 嗨,我正在为每个 TabItem 使用不同的 DataTemplate。我更新了最初的帖子供您查看。
  • 好的。你是在Load 事件还是在标签的GotFocus 事件中做些什么?

标签: c# wpf mvvm wpf-controls


【解决方案1】:

我在这里找到了解决方案

WPF TabControl - Preventing Unload on Tab Change?

replace

      <TabItem Header="Tab1" Content="{Binding Tab1ViewModel}" />
by

        <TabItem Header="Tab1">
            <ContentPresenter Content="{Binding Tab1ViewModel}" />
        </TabItem>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 2012-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-10-27
    • 2021-09-11
    • 1970-01-01
    相关资源
    最近更新 更多