我有一个MainView
和一个相应的MainViewModel
。
在MainView
内,我有一个HeaderView
和一个相应的HeaderViewModel
。
它看起来像这样:
在MainViewModel's
构造函数中,我创建了HeaderViewModel
的新实例,并将一些参数传递给它:
HeaderViewModel = new HeaderViewModel(_eventAggregator, "Kundenstamm");
同样有一个Customer
类型的属性绑定到我的所有文本框:
private Customer _customer;
public Customer Customer
{
get { return _customer; }
set
{
_customer = value;
OnPropertyChanged();
}
}
现在我的问题是,当我按下HeaderViewModel
中的保存按钮时,我需要访问属性Customer
。我如何实现这一目标?
在我看来,Prism的事件聚合器在这种情况下没有意义。
答案 0 :(得分:2)
我可以想象通过多种方式实现这项工作,但它们基本归结为:
“Header”基本上是一个用户控件;它没有足够的信息来执行“保存”功能,因此应该委托给那些做的事情。
这可以通过以下方式完成:
OnSaved
HeaderViewModel
,MainViewModel
订阅SaveCallback
传递给HeaderViewModel
的构造函数OnSaved
事件的第3个班级,标题指示它开火)就个人而言,我会做第一个。第二个也可以;由于MainViewModel
无法直接访问HeaderViewModel
实例,所以第三种情况才会生效。