寻找简单的 MVVM Light 示例
Posted
技术标签:
【中文标题】寻找简单的 MVVM Light 示例【英文标题】:Looking for simple MVVM Light example 【发布时间】:2011-04-20 09:18:40 【问题描述】:我正在尝试学习 MVVM Light,并正在寻找一个很好的基本示例来展示模型以及如何加载不同的视图。
我下载MVVM Light后看到的模板没有模型,只有一个视图。 (http://www.galasoft.ch/mvvm/creating/)
当我只想看到基础知识时,我发现的其他内容更复杂且有点令人困惑。
谢谢。
【问题讨论】:
【参考方案1】:我发现这个例子很有帮助:
http://apuntanotas.codeplex.com/
【讨论】:
本例中的“模型”实现了 INotify。我倾向于将模型视为使用 POCO(普通旧 CLR 对象)并使用 ModelView 实现 INotify 以允许数据绑定。 这个答案不再对人或野兽有帮助,因为该链接不包含任何代码或任何有用的信息 截至 2020 年 7 月,页面顶部有一个很大的“下载存档”链接 - 单击此处,转到 sourceCode/sourceCode.zip。不客气。【参考方案2】:我个人发现这些非常有用,尽管它们也使用 MEF 和 RIA 服务,这会使事情复杂化:
A Sample Silverlight 4 Application Using MEF, MVVM, and WCF RIA Services
Architecting Silverlight 4 with RIA Services MEF and MVVM - Part 1
4 月,MVVM Light 工具包的作者表示,他最终将在 Silverlight 和 WPF 中创建一个参考应用程序。 (Source)
您可能会发现这些其他问题很有用:
mvvm light toolkit samples
wpf/silverlight mvvm sample app request
mvvm tutorial from start to finish
【讨论】:
【参考方案3】:我发现这两个很有帮助:
http://www.codeproject.com/KB/WPF/blendable_locator.aspx http://rickrat.wordpress.com/2011/01/24/using-mef-to-link-view-model-locator-and-load-assembly-uis-dynamically
first 只是 MVVM Light 的一个简单的嵌入式 viewModelLocator 类,它为您提供 MEF 功能。
[ExportViewModel("Demo1", false)]
class Demo1ViewModel : ViewModel
而second 则使用相同的方法和一个额外的 MefHelper 类,该类可以在运行时加载 MEF 组件。
public void Compose()
AggregateCatalog Catalog = new AggregateCatalog();
// Add This assembly's catalog parts
System.Reflection.Assembly ass = System.Reflection.Assembly.GetEntryAssembly();
Catalog.Catalogs.Add(new AssemblyCatalog(ass));
// Directory of catalog parts
if (System.IO.Directory.Exists(ExtensionsPath))
Catalog.Catalogs.Add(new DirectoryCatalog(ExtensionsPath));
string[] folders = System.IO.Directory.GetDirectories(ExtensionsPath);
foreach (string folder in folders)
Catalog.Catalogs.Add(new DirectoryCatalog(folder));
_Container = new CompositionContainer(Catalog);
【讨论】:
【参考方案4】:我发现以下教程是一种快速简便的入门方法:
MVVM Light Toolkit Example
MVVM Step By Step
【讨论】:
以上是关于寻找简单的 MVVM Light 示例的主要内容,如果未能解决你的问题,请参考以下文章
如何将 RelayCommand 与 MVVM Light 框架一起使用