标签: mvvm-light

MVVM Light:在XAML中添加EventToCommand而不使用Blend,更简单的方法还是片段?

任何人都可以告诉我实际的语法是什么EventToCommand.据我所知,EventToCommand该类适用于Silverlight/WPF和WP7,因此我认为它是一个更好的选择.

据我所知,我可以添加任何点击事件并将其强行插入我的ViewModel,但我在找到最佳方法时遇到问题.

我知道你可以在没有Blend的情况下添加它,但是有可用的片段吗?

或者是否有更简单的方法通过VS 2010添加它?任何帮助或如果有人知道这方面的好教程将是伟大的.

mvvm mvvm-light eventtocommand

36
推荐指数
3
解决办法
5万
查看次数

ViewModelLocator MVVM Light中的ViewModels

将所有ViewModel存储在SimpleIoc中是否正确?例如,我有三页MainPage,照片,目录(因此有三个ViewModels - > MainVM,PhotosVM,DirectoriesVM).我应该将每个页面中的DataContext设置为ViewModelLocator中的View Model属性,还是将ViewModel嵌套为MainVM中的属性,并将每个页面DataContext绑定到Main.PhotosVMProperty,Main.DirectoriesVMProperty等等?谁能解释一下IoC的想法和目的?

xaml mvvm-light

33
推荐指数
1
解决办法
5万
查看次数

MVVM Light Messenger - 发送和注册对象

有人能够给我一个如何使用MVVM Light的Messenger在类之间发送和注册自定义对象的示例,或者指向一个涵盖此内容的教程(最好是一个具体示例)吗?我一直在尝试使用Messenger将项目中的对象传递给另一个类,但我从来没有成功过.我在网上看了一些例子,但没有找到任何能告诉我需要的东西.谢谢.

mvvm mvvm-light

32
推荐指数
1
解决办法
4万
查看次数

MVVM,Unity,Prism,MEF,Caliburn - 我应该使用什么?

请帮忙 - 我迷路了!

我正在编写一个小型桌面应用程序,它有一些控件和一些屏幕.这应该稍后与一个小网站集成,也有一些屏幕.我们的想法是让用户编辑视频并选择图像,然后与朋友分享他们的结果.

桌面应用程序使用的是C#WPF,即网站 - ASP.Net MVC.

我读到使用MVVM可以更轻松地将应用程序增加到几个屏幕.所以我开始搜索并发现了Caliburn.Micro和MVVM.Light.我已经下载了一些教程,但正如我准备深入研究材料一样,我在SO上找到.那里还有Prism,MEF,Unity,ReactiveUI - 这太过分了!

我学习新东西很糟糕 - 学习WPF和ASP.Net MVC花了我很多年的时间.我不想研究很多新材料,只是为了稍后发现它不相关.而且我没有一位建筑师来指导我.

所以我的问题是:你能否对这些框架和技术进行透视,并建议我应该把重点放在研究和使用上(特别是后来用于Windows 8的内容)?

prism mef unity-container mvvm-light caliburn.micro

31
推荐指数
3
解决办法
2万
查看次数

何时在WPF中使用事件而不是命令?

您好我最近调查了WPF并开始学习事件和命令.我通常使用按钮点击命令,这导致方法在我的"视图模型"中运行.

是否可以通过使用提交使Button对任何其他事件(如MouseOver事件)做出反应?或者在这种情况下会使用WPF事件?

如果要使用WPF事件,那么事件处理程序实现是否应该在视图模型中调用方法以保持关注点?

wpf routed-commands mvvm mvvm-light eventtocommand

30
推荐指数
2
解决办法
6318
查看次数

棱镜与mvvm光为wpf

我们正在使用MVVM项目启动WPF,并且必须决定PRISM或MVVM Light(我对这两个框架都不熟悉).我已阅读了几篇文章但仍有几个问题.有人可以对框架中的以下几个方面有所了解吗?:

  1. 性能:出于任何原因,一个框架是否会比另一个框架表现更好?

  2. 应用程序内的通信(viewmodel到viewmodel或模块​​之间等):我已经读过MVVM Light有Messenging Service,它看起来也相当容易.但是PRISM似乎没有任何等价物.真的吗?PRISM如何处理交互?

  3. 单元测试:已经读过PRISM更好地支持单元测试.我们还可以在MVVM Light中编写NUNIT或VSTS测试吗?

wpf prism mvvm mvvm-light

28
推荐指数
3
解决办法
2万
查看次数

在ViewModel构建期间或之后MVVM加载数据?

我的通用问题是标题所述,是否最好在ViewModel构造期间或之后通过某些Loaded事件处理加载数据?

我猜测答案是在构建之后通过一些Loaded事件处理,但我想知道ViewModel和View之间如何最清晰地协调?

这里有关于我的情况以及我想要解决的特定问题的更多细节:

我正在使用MVVM Light框架以及Unity for DI.我有一些嵌套的视图,每个视图都绑定到相应的ViewModel.ViewModel通过Laurent Bugnion放入MVVM Light的ViewModelLocator理念绑定到每个View的根控件DataContext.这允许通过静态资源查找ViewModels并通过依赖注入框架控制ViewModels的生命周期,在本例中为Unity.它还允许Expression Blend查看与ViewModel相关的所有内容以及如何绑定它们.

所以无论如何,我有一个父View,它有一个ComboBox数据绑定到其ViewModel中的ObservableCollection.ComboBox的SelectedItem也绑定(双向)到ViewModel上的属性.当ComboBox的选择发生变化时,这将触发其他视图和子视图中的更新.目前我正在通过MVVM Light中的Messaging系统实现这一目标.当您在ComboBox中选择不同的项目时,这一切都非常有效.

但是,ViewModel通过一系列初始化方法调用在构造期间获取其数据.如果我想控制ComboBox的初始SelectedItem是什么,这似乎只是一个问题.使用MVVM Light的消息传递系统,我目前已经设置了ViewModel的SelectedItem属性的setter是广播更新的设置者,另一个感兴趣的ViewModels注册用于它们的构造函数中的消息.看来我正在尝试在构造时通过ViewModel设置SelectedItem,这样就不允许构建子ViewModel并进行注册.

在ViewModel中协调数据加载和SelectedItem初始设置的最简洁方法是什么?我真的很想坚持在View的代码隐藏中尽可能少地使用合理的代码.我想我只需要一种方法让ViewModel知道什么时候有东西已经加载,然后它可以继续加载数据并完成设置阶段.

在此先感谢您的回复.

data-binding constructor onload viewmodel mvvm-light

26
推荐指数
2
解决办法
2万
查看次数

实现CollectionChanged

我已添加CollectionChanged eventhandler(onCollectionChanged)到其中一个ObservableCollection属性.

我发现onCollectionChanged只有在添加项目或将项目移除到集合的情况下才会调用该方法,但是在集合项目被编辑的情况下则不会.

我想知道如何在一个集合中发送新添加,删除和编辑的项目的列表/集合.

谢谢.

c# wpf mvvm mvvm-light

26
推荐指数
3
解决办法
7万
查看次数

在MVVM-light和WPF中切换视图/用户控件的最佳方法是什么?

我对WPF和MVVM比较陌生,我发现最困难的事情就是如何简单地在应用程序中切换用户控件或视图.

在winforms中,要让控件自行删除,你可以简单地说这个.Parent.Controls.Remove(this);

在WPF中没有通用的Parent控件,您必须将其类型转换为特定类型(即Grid),然后将其删除.

这似乎也打破了MVVM架构.我还尝试了数据模板和内容演示器,除了我无法从代码更改datacontext这一事实外,它工作得很好,因为datacontext始终是viewmodellocator.

现在,页面是否可以在WPF中执行此操作?如果我有一个带有自定义usecontrol的网格并且我想根据viewModel中的某个变量切换它会怎么样?似乎在WPF中无法轻松完成最简单的任务.

wpf mvvm-light

24
推荐指数
1
解决办法
2万
查看次数

MVVM Light片段在哪里?

当我们使用Nuget安装MVVM Light Toolkit时,似乎没有安装MVVM Light的片段.

我在哪里可以找到它们?

code-snippets mvvm-light

22
推荐指数
2
解决办法
8415
查看次数