zoukankan      html  css  js  c++  java
  • 理解Prism中MVVM的Command与CommandParameter

    内容摘要

    接上一讲(http://www.cnblogs.com/chenxizhang/archive/2012/04/13/2446415.html),这一讲中我使用Prism做了演示和比较。Prism不仅仅是一个MVVM框架,它还包含其他的模块。在MVVM这个层面,Prism有些特殊性(Command绑定有特殊语法),这也是我这一讲的主要内容。

    Prism的下载链接

    http://compositewpf.codeplex.com/

    视频地址

    http://www.tudou.com/programs/view/72Ag1kQt1RA/

    示例代码

    <Window x:Class="WPFPrismMvvm.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            Title="MainWindow"
            Height="350"
            xmlns:local="clr-namespace:WPFPrismMvvm"
            xmlns:cmd="clr-namespace:Microsoft.Practices.Prism.Commands;assembly=Microsoft.Practices.Prism"
            Width="525">
        <Window.DataContext>
            <local:MainWindowViewModel UserName="chenxizhang"></local:MainWindowViewModel>
        </Window.DataContext>
        <Grid>
    
            <StackPanel>
    
                <TextBox Text="{Binding UserName,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></TextBox>
    
                <Button Content="Show"
                        cmd:Click.Command="{Binding ShowCommand}"
                        cmd:Click.CommandParameter="{Binding UserName}"></Button>
            </StackPanel>
        </Grid>
    </Window>
    

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    using Microsoft.Practices.Prism.ViewModel;
    using Microsoft.Practices.Prism.Commands;
    using System.Windows.Input;
    using System.Windows;
    
    namespace WPFPrismMvvm
    {
        public class MainWindowViewModel:NotificationObject
        {
    
            private string _UserName;
            public string UserName
            {
                get { return _UserName; }
                set
                {
                    if (_UserName != value)
                    {
                        _UserName = value;
                        RaisePropertyChanged("UserName");
                    }
                }
            }
    
    
    
            public ICommand ShowCommand
            {
                get
                {
                    return new DelegateCommand<string>(
                        (user) =>
                        {
                            MessageBox.Show(user);
                        }, (user) => {
                            return !string.IsNullOrEmpty(user);
                        });
    
                }
            }
        }
    }
    
  • 相关阅读:
    初拾Java(问题一:404错误,页面找不到)
    新年新气象--总结过去,展望未来
    接口测试[整理]
    [转]SVN-版本控制软件
    浅谈黑盒测试和白盒测试
    Bug管理工具的使用介绍(Bugger 2016)
    P2805/BZOJ1565 [NOI2009]植物大战僵尸
    近期学习目标
    P3643/BZOJ4584 [APIO2016]划艇
    P5344 【XR-1】逛森林
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/2446782.html
Copyright © 2011-2022 走看看