我在 Windows Phone 7.5 及更高版本上处理一个项目(6 页)目标。我不做纯 MVVM 模型,因为处理导航事件和查询字符串是如此痛苦,所以我决定一个一个地学习它,然后先完成项目:P
由于我是 MVVM 的新手,我决定不使用 MVVM Light,自己编写所有样板代码。当我完成每个部分的编码时,我面临一个问题。
在哪里绑定视图模型是最有效的。我阅读了很多并总结了以下几点。
在 App.xaml.cs 中创建模型实例作为属性,并在视图的代码隐藏中进行绑定。(这是官方数据绑定应用程序示例的方式。)但是当面对大量视图时(6 页等),这可能是个问题。
public partial class App : Application { private static MainViewModel viewModel = null; /// <summary> /// A static ViewModel used by the views to bind against. /// </summary> /// <returns>The MainViewModel object.</returns> public static MainViewModel ViewModel { get { // Delay creation of the view model until necessary if (viewModel == null) viewModel = new MainViewModel(); return viewModel; } } }
在视图后面的代码中创建一个新的视图模型实例作为全局变量。所以我可以在整个视图中使用它。(如上,我不做纯MVVM)
在后面的代码中,在构造函数中,绑定一次。
public MainPage() { InitializeComponent(); myViewModel vm = new myViewModel(); DataContext = vm; }
我阅读了使用 ViewModelLocator 作为中心站的 mvvm light。但是避免使用mvvm light,你们认为在哪里绑定viewmodel最好呢?