我正在尝试理解数据上下文以及不同视图模型中的属性如何应用于WPF中的窗口。
假设我有一个简单的示例表单,其中包含以下代码隐藏:
public partial class pageTest : Page
{
public pageTest ()
{
InitializeComponent();
this.DataContext = new AnotherClass();
}
}
}
现在,让我们假设我们在AnotherClass
类中有一个属性,它是一个名为Visible
的布尔值。此可见值用于折叠并显示特定元素。
现在,我的困惑在于理解如何从另一个ViewModel操纵这个Visible
属性。看到我创建了AnotherClass
类的特定实例,在另一个时间点从另一个ViewModel更改Visible
属性的正确方法是什么?
答案 0 :(得分:0)
嗯...通常你会试着避免WPF中的代码并采用MVVM方式。
无论如何,您必须将该属性设置为静态,因此它跨实例生成,或者使用依赖注入(DI)注入实例,因此无论需要更改它,都可以访问该对象。
对于(有偏见的)mvvm评论,您可以查看this article。
我强烈建议采用这种方式,也可能正在寻找DI,因为它们有很多框架可以帮助你(ninject和autofac pop to mind,但谷歌它,有很多)。