我目前正在使用Microsoft MVVM模板,并发现缺乏详细的示例令人沮丧.包含的ContactBook示例显示了非常少的命令处理,我发现的唯一其他示例来自MSDN杂志文章,其中概念类似但使用稍微不同的方法,但仍然缺乏任何复杂性.是否有任何体面的MVVM示例至少显示基本的CRUD操作和对话/内容切换?
每个人的建议都非常有用,我将开始编制一份好的资源清单
框架/模板
有用的文章
截屏
其他图书馆
我有一个应用程序,需要从用户输入一些信息的按钮打开一个对话框.
目前我这样做(工作正常)
有很多步骤,但它们都有意义,并没有太多的打字.
代码看起来像这样(窗口要求输入用户名)
视图模型:
AskUserNameCommand = DelegateCommand(AskUserNameExecute);
...
public event EventHandler<AskUserEventArgs> AskUserName;
void AskUserNameExecute(object arg) {
    var e = new AskUserNameEventArgs();
    AskUserName(this, e);
    mModel.SetUserName(e.UserName);
}
控制器:
mViewModel.AskUserName += (sender,e) => {
    var view = container.Resolve<IAskUserNameView>();
    var model = container.Resolve<IAskUserNameModel>();
    var viewmodel = container.Resolve<IAskUserNameViewModel>(view, model);
    if (dlg.ShowDialog() ?? false)
        e.UserName = model.UserName;
}
我的问题是水平通信如何在MVVM模式中工作.不知何故,让控制器参与模型之间的数据传输似乎是错误的.
我已经查看了中介模式,让模型直接进行通信.不喜欢这个想法,因为它使模型取决于GUI的实现细节.(即如果用文本框替换对话框,模型需要更改)
我正在尝试在WPF Prism Desktop应用程序中实现模式对话框.
从Prism指导我可以看到正确的方法应该是使用Interaction:
<i:Interaction.Triggers>
    <prism:InteractionRequestTrigger 
            SourceObject="{Binding ConfirmCancelInteractionRequest}">
        <prism:PopupChildWindowAction
                  ContentTemplate="{StaticResource ConfirmWindowTemplate}"/>
    </prism:InteractionRequestTrigger>
</i:Interaction.Triggers>
但是PopupChildWindowAction在桌面的Microsoft.Practices.Prism.Interactivity.DLL库中没有,只有Silverlight?
我可以谷歌在WPF(Prism)的Modal对话框的许多不同的实现,但只是想知道为什么这个功能从Prism桌面DLL丢失,并在Silverlight DLL中可用?我可以使用交互服务,但建议使用交互请求作为MVVM应用程序的更合适的方法.