草庐IT

mvvm-light

全部标签

c# - 如何在 MVVM WPF 应用程序中取消窗口关闭

单击“取消”按钮(或右上角的“X”或“Esc”)后如何取消退出特定表单?WPF:View模型:publicclassMyViewModel:Screen{privateCancelCommandcancelCommand;publicCancelCommandCancelCommand{get{returncancelCommand;}}publicMyViewModel(){cancelCommand=newCancelCommand(this);}}publicclassCancelCommand:ICommand{publicCancelCommand(MyViewModelvi

c# - 为什么 RelayCommand RaiseCanExecuteChanged 在单元测试中不起作用?

我正在使用Nuget(4.1.23.0)上可用的当前版本的MvvmLight,调用RaiseCanExecuteChanged似乎在单元测试中没有做任何事情。场景很简单,我有一个命令:publicRelayCommandFooCommand{get;privateset;}我在View模型构造函数中新建它并将它指向一些私有(private)方法:FooCommand=newRelayCommand(Foo,CanFoo);privatevoidFoo(){//dosomefooing.}privateboolCanFoo(){returnSomeRequiredProperty!=nu

c# - Silverlight 构造函数注入(inject) View 模型+设计模式

我正在努力掌握在Silverlight4中编写可测试的ViewModel。我目前正在使用MVVMlight。我使用的是AutoFac,而IoCContainer工作正常。然而,为了注入(inject)绑定(bind)到View的ViewModels的构造函数,我有这个构造函数链接:publicUserViewModel():this(IoCContainer.Resolve()){}publicUserViewModel(IUserServiceAsyncuserService){if(this.IsInDesignMode)return;_userService=userServic

c# - MVVM:精简 ViewModel 和丰富模型

我一直在与MVVM模式作斗争,并且在尝试为小型/中型项目创建实用设计时遇到了许多挑战。其中一项挑战是弄清楚如何在不创建大量重复且难以维护的代码的情况下获得与此模式分离的好处。我目前的策略是创建“丰富”的模型类。他们充分意识到他们将被MVVM模式消耗并实现INotifyPropertyChanged,允许他们的集合被观察并保持认识到他们可能总是被观察。我的ViewModel类往往很薄,仅在实际需要转换数据时才公开属性,其中大部分代码是RelayCommand处理程序。View很乐意直接绑定(bind)到ViewModel或模型,具体取决于是否需要任何数据转换。我使用AOP(通过Posts

c# - 在 MVVM 中使用后台 worker 更新 ObservableCollection

好的,我最近实现了一个后台工作程序来执行数据的保存和加载。然而,事实证明,要让它在保存命令上运行很困难。基本上,我的保存命令会生成一个事件,通知CollectionView模型已添加一个项目,并且该项目应该添加到它自己的ObservableCollection中。在这一点上,我得到了一个常见的异常,说我不能在不同的线程上更新ICollection。我已经尝试创建一个调用Dispatcher.Invoke的新列表类型,但这仍然会生成相同的异常。我想知道是否还有其他人对如何最好地解决这个问题有任何建议?所以目前我有一个继承自ObservableCollection的类:publicclas

c# - 展示如何在 MVVM 应用程序中使用 Avalondock 的示例代码

关闭。这个问题需要更多focused.它目前不接受答案。想改进这个问题吗?更新问题,使其只关注一个问题editingthispost.关闭3年前。Improvethisquestion我正在尝试在我的wpf应用程序中使用AvalonDock,它是一个MVVM应用程序。环顾四周,我找不到任何示例应用程序来说明如何执行此操作。AlavonDock说原生支持MVVM,所以支持mvvm应该很容易,但是没有示例代码。我的问题是:如何编写具有文档管理器并绑定(bind)到的xamlView模型?如何在这种情况下向面板添加新文档?如何从documentmanegr获取有关布局的信息(如果可能)。

Lightly,超好用的在线代码工具

Lightly,让写代码变得更简单——Lightly官网文章目录1.简介2.首页3.登录使用4.主界面5.创建项目6.项目页面1.简介平时写代码,一般都是使用IDE,而不同语言对应的IDE又不相同,如Java的IDEA、C++的dev、VS、python的PyCharm等。如果是要专门开发一个项目,可以使用它们,但是如果只是写一些demo,那使用这些就有些不大情愿了(反正我是,为了写几个小案例,还要打开这么大的IDE。。)Lightly是一个在线编写代码的平台,是我目前遇到的最好用的在线编辑器了,这是官网介绍2.首页点我进入Lightly首页如下,不得不说,这首页是真的简洁美观支持的语言:3.

c# - RelayCommand 在一段时间后停止工作

我在使用GalaSoft的RelayCommand时遇到了一些问题。我有一个有效的NextCommand属性,但只有几次。之后,它就完全停止工作了。您可以使用示例项目进行尝试:http://s000.tinyupload.com/?file_id=65828891881629261404行为如下:下一个命令:弹出所有项目直到事件索引如果剩余的元素少于50件,则推送1件新元素将新项目标记为事件后退命令:将事件索引向后移动1个位置复制步骤:'+'(OemPlus)键已绑定(bind)到NextCommand'-'(OemMinus)键已绑定(bind)到BackCommand按住“+”键直

c# - 用于 UWP 应用程序的 Prism 与 mvvm 光

我们在Windows8.1中有一个与Win10兼容的工作项目。现在的要求是将此项目转换为UWP。在早期的项目中,我们使用了PRISM作为MVVM的框架。现在的问题是,对于UWP应用,Prism的新版本还没有发布,我们正在考虑使用MVVMLight。我对这两个框架都是新手,即PRISM和MVVMLight。现在我的问题是将代码库从PRISM迁移到MVVMLight会有多困难。如果困难,应该等待PRISM更新版本发布。如果我们应该转向MVVMLight,需要进行哪些重大更改。根据我的观察,代码库与PRISM高度耦合,在整个代码中广泛使用IResourceLoader、ISessionSta

c# - 从插件程序集将 WPF UI 加载到 MVVM 应用程序中

我正在开发一个使用插件架构来扩展其功能的应用程序。从插件加载WPFUI的最佳方式是什么?我将有一个列出所有可用插件的列表框。选择插件后,插件中定义的WPFUI应显示在ContentControl中。我想到的选项包括:需要创建一个实现特定接口(interface)的UserControl。我认为这将使插件创建变得容易。实现一个接口(interface),你就可以开始了。我对这种方法的问题是如何将UserControl动态加载到ContentControl中。此外,由于我使用的是MVVM设计模式,因此似乎DataTemplate优于UserControl。允许从插件加载DataTempla