草庐IT

Jetpack的ViewModel与LiveData

全部标签

c# - 将 ListView 的 SelectedItems 绑定(bind)到 ViewModel

我有一个ListView,它将项目与View模型中的属性绑定(bind)。在View模型中。ICollectionView_businessCollectionpublicICollectionViewBusinessCollection{get{return_businessCollection;}set{_businessCollection=value;RaisePropertyOnChange("BusinessCollection");}}如何在View模型中获取选中的businesscollection项? 最佳答案 1

c# - 如何在没有代码隐藏的情况下处理我的 ViewModel 中的 WPF 路由命令?

根据我对MVVM的理解,直接在ViewModel中处理路由命令是一种很好的做法。当路由命令在ViewModel中定义为RelayCommand(或DelegateCommand)时,很容易像这样直接绑定(bind)到命令:Command={BindingMyViewModelDefinedCommand}。实际上,对于在我的ViewModel外部定义的路由命令,我在View的代码隐藏中处理这些命令并将调用转发到ViewModel。但我觉得我不得不这样做很尴尬。它违背了推荐的MVVM良好实践。我认为应该有一种更优雅的方式来完成这项工作。如何直接在ViewModel中处理“System.W

c# - Caliburn.Micro 无法匹配来自不同程序集的 View 和 ViewModel

我刚开始使用Caliburn.Micro。我正在尝试引导我的简单示例解决方案,将ShellView(用户控件)放在Test.App程序集中,并将ShellViewModel放在Test.ViewModel程序集中。我得到的是一个带有以下文本的窗口:“找不到Caliburn.Test.ViewModel.ShellViewModel的View”。但如果我将ViewModel移动到.App程序集,它会完美运行。这是Caliburn.Micro.Test程序集(可执行)中的Bootstraper:namespaceCaliburn.Micro.Test{publicclassAppBoots

c# - 我能以某种方式告诉 Resharper ViewModel 的类型吗?

我们在不同的程序集中有Views和ViewModels。View的程序集具有对VM的引用。(有时我们需要隐藏代码)。ViewModel的DataContext是在代码中设置的,而不是在XAML中。因此,无论是VS还是Resharper都无法像智能感知那样提供帮助,Resharper也会给出很多警告。我们是否可以在XAML注释中为Resharper设置任何指令,以表明我们打算将View与特定类型的VM一起使用?更新:不错blogpost作为已接受答案的补充。 最佳答案 我遇到了同样的问题,并通过使用XAML中的设计时支持在XAML编辑

c# - XAML 中的命令绑定(bind)与 ViewModel 中的 ICommand 属性

我刚刚开始在应用程序中使用MVVM命令。我找到了许多示例,并在我的代码中尝试了两种方法。一些示例在xaml中具有命令绑定(bind),如下所示:...OpenRecentFile_Executed是ViewModel中的一个方法和一个静态ICommand,如下所示:publicstaticreadonlyICommandOpenRecentFile=newRoutedCommand("OpenRecent",typeof(MainWindow));我还看到ViewModel上有一个ICommand类型的属性在View中绑定(bind)到,如下所示:在ViewModel中:private

c# - 在使用 Automapper 映射 ViewModel 之后,我应该如何测试以及应该测试什么?

我正在尝试测试Controller的Index操作。该操作使用AutoMapper将域Customer对象映射到View模型TestCustomerForm。虽然这有效,但我关心的是测试我从Index操作收到的结果的最佳方法。Controller的索引操作如下所示:publicActionResultIndex(){TestCustomerFormcust=Mapper.Map(_repository.GetCustomerByLogin(CurrentUserLoginName));returnView(cust);}它的TestMethod看起来像这样:[TestMethod]pu

c# - ViewModel 中的警报对话框 - MVVMCross

在ViewModel中,我有Save方法,我在其中检查isValid属性。如果isValid为false,那么我想显示一条错误消息。由于AlertDialog是平台特定的,我想知道您如何在ViewModel中处理这种情况?publicvoidSave(){if(isValid){OnExit(this,null);}else{//issueanalertdialoghere}}更新我使用了以下plugin并按如下方式添加了以下代码行,但会引发错误。else{Mvx.Resolve().Alert("itisnotvalid");}更新2Chance.MvvmCross.Plugins.

c# - 一般的 ReactiveUI、View/ViewModel 注入(inject)和 DI

最近我试图让自己进入UI开发的新时代并发现了ReactiveUI。我喜欢它的声明性。我想做一个彻底的转变,所以我试图了解在这个ReactiveUI的新世界里,事情是如何发生的。我选择ReactiveUI是因为我看到它是由一个非常聪明的人(PaulC.Betts)维护的。我对它还很陌生,我很可能会向StackOverflow提出关于它的问题,因为我有强大的力量,我认为它值得学习和掌握。让我们进入细节:我一直使用View-First。我是Cinch框架的资深用户(http://cinch.codeplex.com/)它使用MEF将ViewModel注入(inject)每个View。您只需要

c# - 如何从后面的代码访问我的 ViewModel

我不明白如何创建命令来创建MVVM可点击矩形。这是我的代码:在我的第一个矩形上,您可以看到我创建了一个代码隐藏事件。首先,我不知道如何从后面的代码访问我的ViewModel。第二,它不是真正的MVVM。publicpartialclassMainWindow:Window{//////InitializesanewinstanceoftheMainWindowclass.///publicMainWindow(){InitializeComponent();Closing+=(s,e)=>ViewModelLocator.Cleanup();}privatevoidColor_Mous

c# - 如何有多对 "View-ViewModel"?

我正在构建一个基于MVVM-Light的应用程序。我需要创建同一个View的多个实例,每个实例都应该绑定(bind)到它自己的ViewModel。默认的ViewModelLocator将ViewModel实现为单例,因此同一View的不同实例将绑定(bind)到同一ViewModel。我可以在VMLocator中将ViewModel创建为非静态对象(就像返回新的VM()...一样简单),但这只能部分帮助我。事实上,我仍然需要跟踪打开的窗口。然而,每个窗口可能会打开其他几个窗口(尽管类型不同)。在这种情况下,我可能需要对父View及其所有subview执行一些操作。例如,在关闭ViewP