示例代码
public class RegisterUserViewModel{public UserInfo userInfo { get; set; }public ICommand ClickCommand { get; set; }public RegisterUserViewModel(){userInfo = new UserInfo();userInfo.Age = 25;this.ClickCommand = new DelegateCommand<object>(OnClick, arg => true);}void OnClick(object obj){userInfo.Age += 1;}}
"mvvmTest.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"Title="MainWindow" Height="350" Width="525"> "21" Margin="12,44,0,0" Name="textBlock1" VerticalAlignment="Top" Text="UserName:" HorizontalAlignment="Left" Width="62" /> "12,93,0,0" Name="textBlock2" Height="21" HorizontalAlignment="Left" VerticalAlignment="Top" Width="62" Text="Age:" /> "21" Margin="99,44,117,0" Name="tbUserName" Text="" VerticalAlignment="Top" /> "21" Margin="99,93,117,0" Name="tbAge" Text="{Binding userInfo.Age}" VerticalAlignment="Top" />
public partial class MainWindow : Window{private RegisterUserViewModel viewModel;public MainWindow(){InitializeComponent();this.ViewModel = new RegisterUserViewModel();}public RegisterUserViewModel ViewModel{get{return this.viewModel;}set{this.viewModel = value;this.DataContext = value;}}}
public class NotificationObject : INotifyPropertyChanged{public event PropertyChangedEventHandler PropertyChanged;public void RaisePropertyChanged(string propertyName){if (this.PropertyChanged != null){this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));}}}public class UserInfo : NotificationObject{private int age;public int Age{get{return age; }set{age = value;this.RaisePropertyChanged("Age");}}}