windows universal app中使用mvvm light
新建空的universal app project,在windows 8.1 和 windows phone 8.1 的project中分别添加“MVVM Light libraries only (PCL) NuGet” 包
在shared project 中新建view model 的class
using GalaSoft.MvvmLight; using GalaSoft.MvvmLight.Command; using System; using System.Collections.Generic; using System.Text; namespace Universal_mvvmlight.ViewModel { public class MainVM : ViewModelBase { private string mTitle = "helloworld"; public string Title { get { return mTitle; } set { mTitle = value; RaisePropertyChanged("Title"); } } private RelayCommand mButtonClick; public RelayCommand ButtonClick { get { return mButtonClick ?? (mButtonClick = new RelayCommand(() => { this.Title = "Fuck The World"; })); } } } }
不用view model locator ,直接在code behind中绑定view model
public MainPage() { this.InitializeComponent(); this.DataContext = new MainVM(); }
接下来在xaml中绑定
<StackPanel Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center"> <TextBlock FontSize="64" Foreground="White" Text="{Binding Title}" VerticalAlignment="Center" HorizontalAlignment="Center"></TextBlock> <Button Command="{Binding ButtonClick}" Content="click me" FontSize="64"></Button> </StackPanel>
英文原文链接:http://dontcodetired.com/blog/post/Using-MVVM-Light-in-Universal-Windows-Apps.aspx