草庐IT

simple-mvvm

全部标签

c# - MVVM : Share data between ViewModels

如何在多个ViewModel之间共享数据?例如,应用程序中有一个名为Project的类。publicclassProject:ModelBase{privatestring_projectName;publicstringProjectName{get{return_projectName;}set{_projectName=value;RaisePropertyChanged(()=>ProjectName);}}}在多个ViewModels应用程序中应该访问ActiveProject。在ViewModel之间共享项目的最佳方式是什么?中介者模式?(消息)静态对象单例模式(如果是怎么

c# - 教程 : Simple WCF XML-RPC client

更新:我在下面的回答中提供了完整的代码示例。我已经构建了自己的小型自定义XML-RPC服务器,并且由于我希望在服务器端和客户端都保持简单,所以我想要完成的是创建一个尽可能简单的客户端(最好使用C#)使用WCF。假设通过XML-RPC公开的服务契约如下:[ServiceContract]publicinterfaceIContract{[OperationContract(Action="Ping")]stringPing();//serverreturnsbackstring"Pong"[OperationContract(Action="Echo")]stringEcho(strin

c# - 如何对在 MVVM 中调用异步方法的 DelegateCommand 进行单元测试

我是单元测试MVVM的新手,在我的项目中使用PRISM。我正在对我们当前的项目实现单元测试,但没有幸运地在线找到可以告诉我如何测试调用异步方法的DelegateCommand的资源。这是我的帖子的后续问题-HowtoUnitTestaViewModelwithasyncmethod.关于如何在MVVM中对异步方法进行单元测试,并回答说公共(public)方法可以使用异步TestMethod进行测试。仅当我要测试的方法是公共(public)方法时,此方案才有效。问题是我想测试我的DelegateCommand,因为这是我想在其他类上公开的唯一公开细节,其他所有内容都是私有(private

c# - MVVM 和控件的动态生成

我已经编写了一个使用GUI生成sql查询的工具,我想使用MVVM和WPF重写该工具,每个sql列类型都有不同的控件,如下图所示我添加了一个基于sql列类型的列过滤器控件,并使用代码生成控件,就像我以前在Windows窗体中所做的那样。在MVVM中,我读到View是完全使用XAML编写的,MVVM是否适合我必须添加不同用户的应用程序动态控制堆栈面板?除非双击某些列,否则控件不会存在于View中,这意味着控件在xaml中不可用,也不会被隐藏或折叠。有什么方法可以避免后面代码中的绑定(bind)?我应该为每种列类型创建一个用户控件吗?一般来说,使用mvvm开发具有复杂和动态UI的此类应用程序

c# - 使用 WPF MVVM 预呈现/隐藏负载?

我有一个用WPF编码的控件,它可以具有三个子元素之一-两个SimpleChildElements和一个ComplexChildElement,比方说-并根据模型中的一些幕后逻辑在它们的显示之间交换我这样做。子元素是它们自己的ViewModel,我已经在上游声明了一些资源,所以它们有DataTemplates。如果有帮助,我可以详细说明,但问题的关键在于:当我滚动浏览主控件中的元素并且第一次弹出ComplexChildElement时,在它被装饰时会出现短暂的、几乎不可见的闪烁——它是一堆用DevExpress装饰的组合框。此设置意味着当我滚动离开带有ComplexChildElemen

c# - WPF:为什么我应该使用现有的 MVVM 框架而不是编写自己的框架?

我想知道MVVM框架能给我带来什么好处(例如mvvmlight、prism等)。如果你能给我从最重要到最不重要的要点。我只是想了解我是应该使用MVVM框架还是自己编写代码。 最佳答案 您可以在没有框架的情况下开始使用MVVM,并且可以随着时间的推移构建自己的基础代码。它可能会帮助您更好地学习模式。一旦你理解了它,你就会更好地体会到像CaliburnMicro这样的框架的力量。给你。当然,这些框架将所有基本模板代码排除在外,但它们还可以添加高级绑定(bind)、操作和组合功能。我刚刚收听了对CaliburnMicro作者的播客采访。也

c# - 学习 WPF 和 MVVM

我最近加入了一个使用WPF和MVVM构建胖客户端应用程序的新开发项目。我在从1.1到3.5的各种.NET框架和所有主要技术中开发了应用程序;WebForms、MVC和WinForms。在我所有的项目中,我都很享受其中的每一分钟,但在这个项目中,我觉得自己很挣扎,因此没有那么享受。当.NET3.5在2008年问世时,我非常喜欢学习新的语言功能(LINQ、MVC、Lambda表达式等)并涉足WPF,所以请不要认为我反对学习新东西。但是这个项目的学习曲线似乎真的很陡峭,我觉得在WPF+应用程序之上学习MVVM有点令人生畏。虽然我参与该项目的时间很短(2周),但我真的很喜欢WPF,但不喜欢MV

c# - 使用 Simple Injector 的 Per Thread 和 Per Web Request 的混合生活方式

我正在使用SimpleInjector作为我的IoC库。我根据网络请求注册了DbContext,它工作正常。但是有一项任务是我在后台线程中运行它。所以,我在创建DbContext实例时遇到了问题。例如Service1有一个DbContext实例Service2有一个DbContext的实例Service1和Service2从后台线程运行。Service1获取实体并将其传递给Service2Service2使用该实体,但实体与DbContext分离其实问题就出在这里:Service1.DbContext和Service2.DbContext的区别。似乎当我在ASP.NETMVC中的单独线

c# - MVVM-如何在文本框中选择文本?

是否有MVVM方法来选择文本框中的文本?我使用的MVVM框架是LaurentBugnion的MVVMLightToolkit。 最佳答案 每当我试图直接影响“纯”MVVM应用程序(View中没有代码隐藏)中的View时,我将使用AttachedProperties封装我想要达到的任何效果。我将创建一个界面来定义我希望使用自定义事件执行的操作。然后,我在将在View上“运行”这些命令的每个ViewModel中实现此接口(interface)。最后,我将ViewModel绑定(bind)到View定义中的附加属性。以下代码显示了如何为S

c# - MVVM - 为 ModelView 实现 'IsDirty' 功能以保存数据

作为WPF和MVVM的新手,我在一些基本功能上遇到了困难。让我先解释一下我在追求什么,然后附上一些示例代码...我有一个显示用户列表的屏幕,我在右侧显示了带有可编辑文本框的所选用户的详细信息。然后我有一个Save按钮,它是DataBound,但我只希望这个按钮在数据实际更改时显示。即-我需要检查“脏数据”。我有一个完整的MVVM示例,其中我有一个名为User的模型:namespaceTest.Model{classUser{publicstringUserName{get;set;}publicstringSurname{get;set;}publicstringFirstname{g