如何使用一个视图模型对于许多窗口在WPF?我需要从一个窗口更新模型,并在其他人处理这些更改(例如,“锁定”属性)。在多个窗口中使用一个视图模型
我有一个视图模型,它不仅包含A(假设它是'Company')窗口,还包含窗口子窗口B(假设它是'Person')应该使用的最一般信息。所以'一般'视图模型应该由一个实体来确定,但是要传递给所有的儿童实体。在A窗口更新这个视图模型时 - 我们应该在所有B窗口上进行更改。
public partial class A : WindowBase
{
private GeneralViewModel general;
public GeneralViewModel General
{
get
{
return this.general ?? (this.general = new GeneralViewModel());
}
}
}
public partial class B : WindowBase
{
private GeneralViewModel general;
public GeneralViewModel General
{
get
{
return this.general ?? (this.general = new GeneralViewModel());
}
}
public B(GeneralViewModel g)
{
this.general = g;
}
}
我希望模型只能在A中更新,B只是简单地显示变化是女仆。如果我通过这个代码中显示的模型,或者如果我使用getter实现'General'作为属性,并且setter更改未应用。
感谢您的任何帮助。
我应该可以有一个窗口的多个实例。所以一个实例可以被锁定,另一个不可以。子窗口引用具体的A实体并且也被锁定或不锁定。 我不明白静态成员如何帮助我。 – Julia
@Julia鉴于你已经很好地封装了你的视图模型属性,你将不得不改变你的窗口代码。静态属性应该返回你的视图模型,窗户应该像往常一样实例化。 – Gusdor