我正在构建一个基于MVVM-Light的应用程序。我需要创建同一个View的多个实例,每个实例都应该绑定(bind)到它自己的ViewModel。默认的ViewModelLocator将ViewModel实现为单例,因此同一View的不同实例将绑定(bind)到同一ViewModel。我可以在VMLocator中将ViewModel创建为非静态对象(就像返回新的VM()...一样简单),但这只能部分帮助我。事实上,我仍然需要跟踪打开的窗口。然而,每个窗口可能会打开其他几个窗口(尽管类型不同)。在这种情况下,我可能需要对父View及其所有subview执行一些操作。例如,在关闭ViewP
该问题已被问过几次,不幸的是答案仅适用于WPF。任何人都知道如何在silverlight中完成此操作?基本上我需要关注代码中的某个文本框。 最佳答案 我已经成功地使用了这种方法http://caliburnmicro.codeplex.com/discussions/222892?ProjectName=caliburnmicropublicclassFocusBehavior:Behavior{protectedoverridevoidOnAttached(){AssociatedObject.GotFocus+=(sender,
我有一个Activity具有许多属性的对象。其中之一如下:publicActivityStatusStatus{get{returnstatus;}set{status=value;NotifyPropertyChanged("Status");}}ActivityStatus类只有两个属性:publicGuidGuid{get{returnguid;}set{guid=value;NotifyPropertyChanged("Guid");}}publicstringName{get{returnname;}set{name=value;NotifyPropertyChanged("
我一直在谷歌搜索甚至Bing-ing,但我没有想出任何令人满意的东西。我有一个包含一些命令的ViewModel,例如:SaveCommand、NewCommand和DeleteCommand。我的SaveCommand执行保存到文件操作,我希望它是一个async操作,这样UI就不会等待它。我的SaveCommand是AsyncCommand的一个实例,它实现了ICommand。SaveCommand=newAsyncCommand(asyncparam=>{Connectioncon=awaitConnection.GetInstanceAsync(m_configurationPat
在我的应用程序中,我有大量的表单,其中大部分都有自己的绑定(bind)模型!当然数据验证很重要,但是没有比为所有模型实现IDataErrorInfo然后为所有属性编写代码来验证它们更好的解决方案了吗?我已经创建了验证助手,它删除了很多实际的验证代码,但我仍然忍不住觉得我错过了一两个技巧!我可以补充一点,这是我在其中使用MVVM的第一个应用程序,所以我确信我在这个主题上还有很多东西要学习!编辑:这是我非常不喜欢的典型模型的代码(让我解释一下):stringIDataErrorInfo.Error{get{returnnull;}}stringIDataErrorInfo.this[str
我正在按照MVVM模式制作WPF应用程序。在此我使用EntityFramework,我的实体结构很简单,有3个实体:department,course,books,一个部门可以有很多门类(class),一个类(class)可以有很多本书,现在我想在TreeView中显示它,所以我在wpf中的输出应该如下所示,Department1Course1Book1Book2Course2Book3Department2CourseBookDepartment3在我的ViewModel中,我有EntityContext对象。但我不知道如何在TreeView中显示它。我该怎么做。
尤其是2d游戏,尤其是silverlight/wpf游戏。如果您考虑一下,您可以将游戏对象分为View(屏幕上的图形)和View模型/模型(对象的状态、ai和其他数据)。在silverlight中,使每个对象成为用户控件似乎很常见,将模型和View放入单个对象中。我想这样做的好处是简单。但是,就底层“游戏引擎”而言,它可能不太干净或有一些缺点。您对此事有何看法?使用MVVM模式进行游戏开发有哪些优点和缺点?性能如何?欢迎所有想法。 最佳答案 您可能会遇到性能问题,因为MVVM通常会导致WPF中的大量数据绑定(bind)功能来实现完全
这个问题让我很头疼。我真的不喜欢商店应用程序,但在这种情况下不得不使用它。我只使用XAML几个星期。我的问题是:如何在我的ViewModel中调用RelayCommand(当然是从我的View中)来更改我View中的页面?更好的是,使用URI更改它,以便我可以将命令参数传递给文件。我完全迷失了。目前,我在后面的View代码中使用this.Frame.Navigate(typetype)来浏览页面。我真的,我的意思是真的很感激从头到尾关于在这种情况下该怎么做的描述。我想我可以做一些事情,比如在我的View上构建一个框架容器并将它发送到我的ViewModel,然后从那里将当前框架导航到另一
我克隆了一个解决方案,它包含多个基于GalaSoftMvvmLight库的项目,还有两个可移植项目。我已经安装了所有必需的nuget包和引用,但我无法构建这些可移植项目,并且需要先构建这些可移植项目,因为所有其他项目都引用它。我在使用GalaSoft的每个文件中都遇到了这个(如下)错误。它是一个可移植类库项目。Error64Thetypeornamespacename'GalaSoft'couldnotbefound(areyoumissingausingdirectiveoranassemblyreference我在这个项目中引用了这个(下面)PortableMvvmLight库\M
我使用BrianNoyes的Pluralsight类(class)“深入了解WPFMVVM”作为我的主要来源,他展示的内容效果非常好。但是,我不想根据在UtilitiesView上单击的按钮切换View,而是希望根据工具栏按钮(构成VS2015扩展包的一部分)切换View,用户可以在其中选择特定实例。UtilitiesView是由包扩展打开的窗口上的用户控件。所以这是UtilitiesView中的xaml:``可以看出,有两个按钮通过绑定(bind)到ChangeViewModelCommand并传递一个字符串值(“CalculationEngine”或“TAEngine”)来切换Vi