棱镜 - 在视图模型之间移动数据

时间:2017-08-31 21:40:08

标签: prism

我努力寻找最佳实施方案。

我使用Prism并且我有一个View(ParentView),其中有一个小区域。根据ddl中的项目,另一个较小的视图(ChildView)将被注入ParentView的区域。

ChildView将只有一些我想从ParentView访问的属性。

所以我意识到我可以使用Publish / Subscribe方法在视图模型之间移动数据,但问题是我没有什么可以挂起发布。视图由TextBoxes组成,没有事件触发器。根据ddl的选择,ChildView可能会有很大的不同。我喜欢每个ChildView的清晰分离,因为它在ParentView中注入了自己的视图。

实现这一目标的最佳方法是什么?

2 个答案:

答案 0 :(得分:0)

一种解决方案是在视图模型中实现INavigationAware接口。之后,您可以使用onNavigatedFrom(),onNavigatedTo()和onNavigatingTo()方法来注册您的活动。

修改

如果您希望在更改子项中的字段时启动事件,则可以执行以下操作:

private string _yourField;

public string YourField
        {
            get { return _yourField; }
            set { SetProperty(ref _yourField, value); 
                  //Here you can launch the event
                }
        }

在这种情况下,当YourField更改时,事件已启动。

答案 1 :(得分:0)

我尝试了一些实现,但有效的是创建ChildView(childviewmodel)的单例实例,然后通过实例获取对属性的访问权限。它可能不漂亮,但它的工作原理。

Preference

实际上 - 有许多儿童属性。我只列出了一个用于演示。然后我在ParentView中调用它

PreferenceFragment

希望能帮助别人。