如何访问另一个控件的viewModel

安德烈亚斯

我有一个CustomControl B,它使用DataContext / MVVM(viewModelB)。现在,我想将CustomControl的一个属性绑定到另一个控件A(使用viewModelA作为DataContext)。

所以我有两个想法:

  1. 每当viewModelA中的PropA更改时,我都可以直接更新viewModelB中的PropB。但这在viewModels之间创建了一个依赖关系,这对我来说似乎很丑陋。还是这是MVVM模式中的一种常见方法,无法避免?

  2. 作为替代方案,我可以考虑CustomControlB上的依赖项属性,并通过绑定将其连接到CustomControlA的viewModel,如下所示:

    <myControlB PropB={Binding ElementName=myControlA, Path=DataContext.PropA} />

    到目前为止,一切都很好,但是依赖属性现在已在视图上定义。我应该如何可视化?

    • a)我应该将值(从属性包装器)传输到viewModelB并从viewB的XAML代码绑定到它吗?

    • b)还是应该直接从B的codeBehind更新视图?这仍然是正确的MVVM“样式”吗?

您会推荐哪个选项?

问候

安德烈亚斯

阿迪·莱斯特

只要ViewModelA不主动更新ViewModelB,两个视图模型之间就没有真正的结合。我的意思是,如果您的主视图模型(同时知道两个视图模型)是连接绑定的模型,则视图模型仍然是松散耦合的。

所以对我来说,这些都不错:

  • 从XAML直接绑定到myControlA.DataContext.PropA
  • MainViewModel注册ViewModelA的属性更改事件和修改ViewModelB的财产是必要的。这里MainViewModel了解两个视图模型,但彼此之间一无所知。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从添加到另一个控件的子控件访问变量?

来自分类Dev

如何从另一个控件调用另一个控件的LostFocus事件

来自分类Dev

从另一个线程访问UI控件

来自分类Dev

kendo requirejs从另一个模块访问viewmodel

来自分类Dev

从另一个ViewModel访问属性

来自分类Dev

如何在另一个窗体上访问ListView控件

来自分类Dev

如何从Sitecore中的另一个子布局访问子布局控件?

来自分类Dev

如何从另一个 JavaFX 窗口访问 JavaFX 窗口的控件?

来自分类Dev

如何从另一个ViewModelA调用的ViewModel中访问ViewModelA中的字段的值

来自分类Dev

如何与另一个类的Form控件通信?

来自分类Dev

如何在同一页面上的另一个Ascx控件中访问一个Ascx控件中的值

来自分类Dev

Inno Setup:从另一个控件的OnClick事件访问自定义控件

来自分类Dev

如何使程序选中一个图片框与另一个控件相交?

来自分类Dev

如何从另一个类访问数组

来自分类Dev

如何从另一个容器访问容器视图

来自分类Dev

如何从另一个类访问textarea?

来自分类Dev

如何从另一个指令访问指令的ngModelController?

来自分类Dev

如何从另一个类访问对象变量?

来自分类Dev

QML,如何从另一个qml访问元素

来自分类Dev

如何从另一个类访问对象

来自分类Dev

如何访问另一个视图内的变量?

来自分类Dev

我如何从另一个集团访问数据

来自分类Dev

如何从另一个输出访问变量

来自分类Dev

如何从另一个类访问列表的长度

来自分类Dev

如何从另一个类导入或访问UITextField

来自分类Dev

如何从另一个组件访问[(ngModel)]?

来自分类Dev

如何访问另一个查询LINQPad的成员?

来自分类Dev

如何访问另一个类的对象

来自分类Dev

如何访问另一个变量C#

Related 相关文章

  1. 1

    如何从添加到另一个控件的子控件访问变量?

  2. 2

    如何从另一个控件调用另一个控件的LostFocus事件

  3. 3

    从另一个线程访问UI控件

  4. 4

    kendo requirejs从另一个模块访问viewmodel

  5. 5

    从另一个ViewModel访问属性

  6. 6

    如何在另一个窗体上访问ListView控件

  7. 7

    如何从Sitecore中的另一个子布局访问子布局控件?

  8. 8

    如何从另一个 JavaFX 窗口访问 JavaFX 窗口的控件?

  9. 9

    如何从另一个ViewModelA调用的ViewModel中访问ViewModelA中的字段的值

  10. 10

    如何与另一个类的Form控件通信?

  11. 11

    如何在同一页面上的另一个Ascx控件中访问一个Ascx控件中的值

  12. 12

    Inno Setup:从另一个控件的OnClick事件访问自定义控件

  13. 13

    如何使程序选中一个图片框与另一个控件相交?

  14. 14

    如何从另一个类访问数组

  15. 15

    如何从另一个容器访问容器视图

  16. 16

    如何从另一个类访问textarea?

  17. 17

    如何从另一个指令访问指令的ngModelController?

  18. 18

    如何从另一个类访问对象变量?

  19. 19

    QML,如何从另一个qml访问元素

  20. 20

    如何从另一个类访问对象

  21. 21

    如何访问另一个视图内的变量?

  22. 22

    我如何从另一个集团访问数据

  23. 23

    如何从另一个输出访问变量

  24. 24

    如何从另一个类访问列表的长度

  25. 25

    如何从另一个类导入或访问UITextField

  26. 26

    如何从另一个组件访问[(ngModel)]?

  27. 27

    如何访问另一个查询LINQPad的成员?

  28. 28

    如何访问另一个类的对象

  29. 29

    如何访问另一个变量C#

热门标签

归档