首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用统一将相同的视图模型传递给子视图?

如何使用统一将相同的视图模型传递给子视图?
EN

Stack Overflow用户
提问于 2009-05-12 00:50:59
回答 1查看 1.1K关注 0票数 2

我有一个业务对象,比如说customer,它有太多的字段要显示在一个页面中,所以我将它分成不同的选项卡页。数据不能将其分割成有意义的位(如地址、状态、街道名称等),因此我决定保留相同的模型和视图模型,并具有不同的视图(每个选项卡页内容是不同的视图)绑定到同一个视图模型。

首先,这是正确的做法吗?

其次,如果是的话,如何使用统一将相同的视图模型传递给子视图?目前我使用构造函数注入,但它们是视图模型的新实例。

干杯,

阿里

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-05-12 06:50:08

如果您使用的是棱镜,那么您可以使用RegionContext。

为RegionContext指定TabControl:

代码语言:javascript
复制
<TabControl cal:RegionManager.RegionName="MyTabControl"
cal:RegionManager.RegionContext="{Binding Path=ViewModel}">

并使用RegionContext上的静态RegionContext方法从添加到该区域的视图访问它:

代码语言:javascript
复制
void ViewConstructor()
{
this.ViewModel = (MyViewModel)RegionContext.GetObservableContext(this).Value;
}

如果不使用Prism,则可以将ViewModel注册为命名实例:

代码语言:javascript
复制
Container.RegisterInstance<IMyViewModel>("viewModelName", new MyViewModel());

稍后使用以下方法获取:

代码语言:javascript
复制
Container.Resolve<IMyViewModel>("viewModelName");
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/850691

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档