【发布时间】:2018-06-28 07:01:30
【问题描述】:
我有一个 MainWindow 和 7 个带有自己 VM 的用户控件。
我的MainWindow 有两个字符串(电子邮件和语言),我在所有 7 个用户控件中都需要它们。我找到了一个解决方案(每个UserControl 的简单Dependency Properties),但我不想为每个UserControl 做7 次,因为这似乎不适合我。有更好的方法吗?
【问题讨论】:
-
“用户控制与他们自己的虚拟机”。那已经错了。 UserControl 永远不应该有自己的视图模型。它通常公开一组绑定到外部视图模型的依赖项属性。或者,它的子元素可能直接绑定到其 DataContext 中的视图模型对象(通过从控件的父元素继承的属性值传递到那里)。
-
如果您需要在多个控件类中使用相同的一组属性,请创建一个公共基类。
-
嘿!我对 wpf 和 mvvm 有点陌生,我不完全知道如何完成我的应用程序的导航部分。就像我找到的每个解决方案都是使用 ContentControl - UserControls 和他们自己的虚拟机一样,很抱歉 ^^。谢谢你的回答,我试试看。
-
致投反对票但未解释原因的人:wtf?
-
你也可以使用ninject