自从我开始使用MVVM以来,这是一个我一直在努力解决的问题,首先是在WPF中,现在是在Silverlight中。我使用IOC容器来管理View和View模型的分辨率。View往往是非常基本的,具有默认的构造函数,但ViewModel倾向于访问真实的服务,所有这些都是它们构建所必需的。同样,我使用IOC容器进行解析,因此注入(inject)服务不是问题。真正成为问题的是使用IOC将所需数据传递给ViewModel。举一个简单的例子,考虑一个允许编辑客户的屏幕。除了它可能需要的任何服务之外,此屏幕的ViewModel还需要一个客户对象来显示/编辑客户数据。在进行任何类型的(非MVVM)库开
自从我开始使用MVVM以来,这是一个我一直在努力解决的问题,首先是在WPF中,现在是在Silverlight中。我使用IOC容器来管理View和View模型的分辨率。View往往是非常基本的,具有默认的构造函数,但ViewModel倾向于访问真实的服务,所有这些都是它们构建所必需的。同样,我使用IOC容器进行解析,因此注入(inject)服务不是问题。真正成为问题的是使用IOC将所需数据传递给ViewModel。举一个简单的例子,考虑一个允许编辑客户的屏幕。除了它可能需要的任何服务之外,此屏幕的ViewModel还需要一个客户对象来显示/编辑客户数据。在进行任何类型的(非MVVM)库开
最好的解释方式是举例:这是模型publicclassPerson{publicintage;publicstringname;}这是View模型publicclassPersonVM{}我的问题是:vm应该将人暴露给数据模板还是用他自己的属性封装模型属性? 最佳答案 关于这个问题还没有达成共识。例如,这是WardBell提出的关于MVVM的开放性问题之一here:IstheVMallowedtooffertheVanunwrappedM-object(e.g.,therawEmployee)?OrmusttheM-object’sp
最好的解释方式是举例:这是模型publicclassPerson{publicintage;publicstringname;}这是View模型publicclassPersonVM{}我的问题是:vm应该将人暴露给数据模板还是用他自己的属性封装模型属性? 最佳答案 关于这个问题还没有达成共识。例如,这是WardBell提出的关于MVVM的开放性问题之一here:IstheVMallowedtooffertheVanunwrappedM-object(e.g.,therawEmployee)?OrmusttheM-object’sp
我有一个WPF窗口,在那个窗口中我有一个网格。我使用M-V-VM模型,我想在代码中(在View模型中)动态地向网格添加一个文本框我怎样才能访问网格? 最佳答案 使用监督Controller模式。阅读:此处显示了CaliburnMicroMVVM框架的示例实现(对于所有其他框架同样适用-或者如果您自己执行MVVM,则可以手动完成):http://drc.ideablade.com/devforce-2012/bin/view/Documentation/cocktail-tutorial-talk-to-view示例:1)定义接口(i
我有一个WPF窗口,在那个窗口中我有一个网格。我使用M-V-VM模型,我想在代码中(在View模型中)动态地向网格添加一个文本框我怎样才能访问网格? 最佳答案 使用监督Controller模式。阅读:此处显示了CaliburnMicroMVVM框架的示例实现(对于所有其他框架同样适用-或者如果您自己执行MVVM,则可以手动完成):http://drc.ideablade.com/devforce-2012/bin/view/Documentation/cocktail-tutorial-talk-to-view示例:1)定义接口(i
我有一个基于MVVM设计模式构建的WPF应用程序。我希望在应用中实现一个进度条,它遵循MVVM模式。有人对如何实现这一点有什么建议吗?提前致谢 最佳答案 通常,您的UI会简单地绑定(bind)到VM中的属性:您的VM将使用BackgroundWorker在后台线程上完成工作,并定期更新CurrentProgress值。像这样:publicclassMyViewModel:ViewModel{privatereadonlyBackgroundWorkerworker;privatereadonlyICommandinstigateWo
我有一个基于MVVM设计模式构建的WPF应用程序。我希望在应用中实现一个进度条,它遵循MVVM模式。有人对如何实现这一点有什么建议吗?提前致谢 最佳答案 通常,您的UI会简单地绑定(bind)到VM中的属性:您的VM将使用BackgroundWorker在后台线程上完成工作,并定期更新CurrentProgress值。像这样:publicclassMyViewModel:ViewModel{privatereadonlyBackgroundWorkerworker;privatereadonlyICommandinstigateWo
我在将图像绑定(bind)到我的View模型时遇到了一些问题。我终于摆脱了XamlParseException,但图像没有出现。我什至在ViewModel中对图像进行了硬编码。有人可以看到我做错了什么吗?查看:View模型:string_DisplayedImagePath=@"C:\Users\Public\Pictures\SamplePictures\Chrysanthemum.jpg";//string.Empty;int_DisplayedImageIndex;BitmapImage_DisplayedImage=null;publicBitmapImageDisplayed
我在将图像绑定(bind)到我的View模型时遇到了一些问题。我终于摆脱了XamlParseException,但图像没有出现。我什至在ViewModel中对图像进行了硬编码。有人可以看到我做错了什么吗?查看:View模型:string_DisplayedImagePath=@"C:\Users\Public\Pictures\SamplePictures\Chrysanthemum.jpg";//string.Empty;int_DisplayedImageIndex;BitmapImage_DisplayedImage=null;publicBitmapImageDisplayed