引用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>

 

posted @ 2014-04-02 17:13  一 剑  阅读(497)  评论(0编辑  收藏  举报