【发布时间】:2013-05-11 12:06:55
【问题描述】:
在我的 WPF MVVM 应用程序中,使用 Caliburn.Micro,我有一个 ViewModel CreateServiceViewModel,单击按钮会在单独的窗口中打开一个 GridView,供用户从中选择一个行。
我为此创建了另一个 ViewModel,MemberSearchViewModel,它有两个属性:
private Member selectedMember;
public Member SelectedMember
{
get { return selectedMember; }
set { selectedMember = value; }
}
private IList<Member> members;
public IList<Member> Members
{
get { return members; }
set { members = value; }
}
如何将 SelectedMember 值返回给调用 ViewModel?该 ViewModel 的属性为 Service.SelectedMember。
【问题讨论】:
-
如果可能的话,我会避免在两个虚拟机之间创建依赖关系。如果您使用 Prism 或类似工具,EventAggregator 或类似模式可能会很有用。
-
我正在使用 Caliburn.Micro。可能应该提到...似乎
EventAggregater或IChild实现在这里可以帮助我,但我无法理解如何... -
为了进一步参考,我需要从这个 ViewModel 中选择 Selected GridView 行。它弹出,用户选择一行,然后关闭。
-
我将一些代码放在了答案格式中。如果您需要更多信息,请告诉我。
-
一般来说,在这种情况下使用事件还是直接将值传回其父级更好?
标签: c# .net wpf mvvm caliburn.micro