【发布时间】:2018-05-03 15:08:12
【问题描述】:
我一直在尝试实现这一点,但到目前为止还没有做到,尽管我觉得这应该很容易。
困难在于我已经使用 MVVM 模式实现了一个 WPF 应用程序。现在,这是我对模式和框架的第一次尝试,所以几乎可以肯定我在尝试遵循 MVVM 指南时犯了错误。
我的实现
我有三个视图及其各自的视图模型(使用 Prism 的 AutoWireViewModel 方法连接)。 MainView 有一个TabControl 和两个TabItems,每个女巫都包含一个Frame 容器,其中Source 设置为另外两个Views 之一。以下代码摘自MainView:
<TabControl Grid.Row="1" Grid.Column="1">
<TabItem Header="Test">
<!--TestView-->
<Frame Source="View1.xaml"/>
</TabItem>
<TabItem Header="Results">
<!--ResultsView-->
<Frame Source="View2.xaml"/>
</TabItem>
</TabControl>
我的问题
每当有人更改为特定的TabItem 时,我都想运行一个方法来更新该View 中包含的一个WPF 控件。该方法已经实现并绑定到Button,但理想情况下,不需要任何按钮,我想要某种Event 来实现这一点。
提前感谢所有帮助。
【问题讨论】:
-
可以发
xaml吗?和ViewModels之一? -
方法在哪里定义?在视图还是视图模型中?
-
@3xGuy 我已经添加了
xaml代码,但是 ViewModel 代码很长。你到底想要什么? -
谢谢,我会研究一下给我一些。
-
tabcontrol 是一种选择器。 msdn.microsoft.com/en-us/library/… 当您选择一个 tabitem 时,您正在选择一个项目。您可以将 selecteditem 绑定到视图模型中的属性,并为此在 setter 中执行操作。您还可以绑定和模板来生成标签。