引用prism的MVVM示例
VS2013测试通过by一剑
MainModel.cs
using System.ComponentModel; namespace referencePrismMVVM.Model { public class MainModel { public int Number1 { get; set; } public int Number2 { get; set; } public int Result { get; set; } } }
MainViewModel.cs
using referencePrismMVVM.Model ; using Microsoft.Practices.Prism.Commands; using System.ComponentModel; namespace referencePrismMVVM.VideModel { public class MainViewModel:INotifyPropertyChanged { public ICommand AddCommand { get; private set; } public MainViewModel() { this.AddCommand = new DelegateCommand<object>(this.OnSubmit); } private void OnSubmit(object obj) { Result = Number1 + Number2; } public event PropertyChangedEventHandler PropertyChanged; public int Number1 { get; set; } public int Number2 { get; set; } private int result; public int Result { get { return this.result; } set { if (value != this.result) { this.result = value; if (this.PropertyChanged != null) { this.PropertyChanged(this, new PropertyChangedEventArgs("Result")); } } } } } }
MainPage.xaml
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="referencePrismMVVM.MainPage" mc:Ignorable="d" xmlns:ds="clr-namespace:referencePrismMVVM.VideModel" d:DesignHeight="300" d:DesignWidth="400"> <UserControl.DataContext> <ds:MainViewModel/> </UserControl.DataContext> <Grid x:Name="LayoutRoot" Background="White"> <TextBox Text="{Binding Number1, Mode=TwoWay}" HorizontalAlignment="Left" Height="23" Margin="38,142,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="72"/> <TextBox Text="{Binding Number2, Mode=TwoWay}" HorizontalAlignment="Left" Height="23" Margin="154,142,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="72"/> <Button x:Name="AddButton" Command="{Binding AddCommand}" Content="=" HorizontalAlignment="Left" Margin="243,142,0,0" VerticalAlignment="Top" Width="37"/> <sdk:Label HorizontalAlignment="Left" Height="19" Margin="128,145,0,0" VerticalAlignment="Top" Width="15" Content="+"/> <sdk:Label Content="{Binding Result,Mode=TwoWay}" HorizontalAlignment="Left" Height="16" Margin="295,145,0,0" VerticalAlignment="Top" Width="71"/> </Grid> </UserControl>