jjzjj

viewmodels

全部标签

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# - 将 ViewModel 类放在 MVC 中的什么位置

我的问题很简单。我想知道在MVC应用程序中将我的ViewModels放在哪里。目前我正在处理的项目只有ViewModels,它们存储在Models文件夹中。在该文件夹中,我们直接创建ViewModel类。但通常我也会有Model类,以从数据库或其他东西中获取数据。然后我从Controller与Model方法“对话”并将结果存储在ViewModel属性中。但是当我同时使用Model类和ViewModel类时,我该把它们放在哪里呢?在为这两者构建文件/文件夹的意义上,什么是好的做法? 最佳答案 只需在您的项目中创建一个名为ViewMod

c# - 获取代理对象的底层类型

我正在使用CaSTLeDynamicProxy,我的ViewModels是一个代理,像这样:namespaceMyApplication.ViewModels{publicclassMyViewModel:BaseViewModel,IMyViewModel{}}虽然我的View模型的代理看起来像这样:{Name="IRootViewModelProxyffecb133f590422098ca7c0ac13b8f98"FullName="IRootViewModelProxyffecb133f590422098ca7c0ac13b8f98"}我想获取被代理的实际类型的实际类型或命名空间

c# - Caliburn Micro 取消窗口从 ViewModel 关闭

当用户单击窗口的关闭按钮时,是否可以从ViewModel取消关闭,还是我必须求助于代码隐藏?据我所知,CanClose或TryClose不能解决问题。 最佳答案 您可能已经尝试过了,但我刚刚创建了一个快速测试,从Screen派生了一个View模型并覆盖了CanClose。publicclassShellViewModel:Screen{publicoverridevoidCanClose(Actioncallback){//if(somelogic...)callback(false);//willcancelclose}}

c# - Caliburn.Micro 让它将 MainView 中的 UserControls 绑定(bind)到他们的 ViewModels

我有一个MainView.xaml,可以很好地绑定(bind)到MainViewModel。我想尝试的是将主窗体上的许多控件拆分为UserControl。现在,我将UserControls与MainView一起放入Views文件夹中,并将它们命名为LeftSideControlView.xaml和RightSideControlView.xaml。对应的ViewModels在名为LeftSideControlViewModel等的ViewModels文件夹中。我成功地将用户控件添加到主视图:它们在设计器中正确显示。这是xaml中的其中一个:我使用CaSTLe.Windsor在AppBo

c# - 异步加载 ViewModel 中的数据(使用 async 和 await)不使用数据绑定(bind)

我使用默认模板启动了一个手机应用程序,该模板已经定义了一个View模型。我修改了MainViewModel的LoadData()方法以异步调用odata服务。但它不适用于数据绑定(bind)。我已验证调用成功返回但未显示任何结果。LongListSelector的项源绑定(bind)到View模型中的Items属性。这是我对View模型的修改(注意async和await的用法):publicvoidLoadData(){FetchTileViewItems();}privateasyncvoidFetchTileViewItems(){varret=awaitI2ADataServic

c# - ASP.net MVC - 每个 View 或每个操作一个 ViewModel?

每个View有一个ViewModel还是每个Controller操作一个更好?例子:publicProjectController:Controller{publicActionResultEdit(intid){varproject=...;returnView(newProjectEditViewModel(project));}[HttpPost]publicActionResultEdit(ProjectEditViewModelmodel){}**OR**[HttpPost]publicActionResultEdit(Projectmodel){}[HttpPost]pub

c# - 在viewmodel的构造函数中调用async方法加载数据有警告

我的View包含一个ListView,它显示来自互联网的一些数据,我创建了一个异步方法来加载数据并在我的View模型的构造函数中调用该方法。它有一个警告提示我现在使用await关键字。在构造函数中异步加载数据的任何其他解决方案? 最佳答案 有几个模式可以应用,所有这些都在StephanCleary的帖子中提到过。但是,让我提出一些不同的建议:由于您在WPF应用程序中,我会使用FrameworkElement.Loaded事件并将其绑定(bind)到ViewModel中的ICommand。有界命令将是AwaitableDelegate

c# - CompositeCollection + CollectionContainer : Bind CollectionContainer. 集合到用作 DataTemplates DataType 的 ViewModel 的属性

我没有获得正确的绑定(bind)语法来访问DateTemplate中MyViewModel的Cats和Dogs属性>在其资源中定义了一个CompositeCollection。publicclassMyViewModel{publicObservableCollectionCats{get;privateset;}publicObservableCollectionDogs{get;privateset;}}我必须插入什么????将Dogs和Cats集合绑定(bind)到CollectionContainer? 最佳答案 由于Col

c# - WPF MVVM : Binding a different ViewModel to each TabItem?

我有一个带有选项卡控件的主窗口,其中包含2个tabItem:我目前有1个ViewModel为Tab1和Tab2提供服务。此ViewModel因SOC模糊而变得有点臃肿。我想将逻辑拆分为2个View模型:ViewModel1和ViewModel2。我的理解是,您可以将主窗口DataContext设置为包含ViewModel集合的BaseViewModel,然后您可以将每个TabItem声明为不同的ViewModel。我看到的这些基本ViewModel的示例公开了一个ObservableCOllection,如下所示:privateObservableCollection_viewMode