【发布时间】:2018-12-08 15:23:20
【问题描述】:
在我的应用程序中,我需要从子设置视图模型调用主视图模型中的方法来更改主视图中的选项卡控件。基本上它是选项卡控件中的视图模型列表。设置视图模型具有用于打开或关闭选项卡的复选框。
无论如何,我在实例的主视图模型中设置了一个静态属性。在我的设置视图模型构造函数中,我得到一个空响应,但是如果我在每个复选框属性更改上检索实例,它就可以工作。似乎是创建实例的时间问题。当主视图模型实例不为空时,是否有事件或什么可以告诉我?
<Window.Resources>
<DataTemplate DataType="{x:Type skyTelescope:SkyTelescopeVM}">
<skyTelescope:SkyTelescopeV />
</DataTemplate>
<DataTemplate DataType="{x:Type rotator:RotatorVM}">
<rotator:RotatorView />
</DataTemplate>
<DataTemplate DataType="{x:Type focuser:FocuserVM}">
<focuser:FocuserView />
</DataTemplate>
<DataTemplate DataType="{x:Type settings:SettingsVM}">
<settings:SettingsV />
</DataTemplate>
</Window.Resources>
【问题讨论】:
-
你不能让你的子设置视图模型成为主窗口视图模型的孩子吗?
-
我该怎么做?当前设置从主视图加载为用户控件。这不算是个孩子吗?
-
如果您首先使用视图模型,那么它将从您的主窗口视图模型中的视图模型中模板化。所以你可以传递你喜欢的任何东西,你会知道你的视图模型肯定是完全实例化的,因为它控制着用户控件需要的数据。
-
添加到 OP 我的主视图正在做什么,然后我只是绑定到基于单选按钮的选定视图模型。对不起,我对此太天真了。