• MVVM test


    示例代码

        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;
            }
        }
    ViewModel
    <Window x:Class="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">
        <Grid>
                <Button Height="23" HorizontalAlignment="Left" Margin="12,0,0,72" Name="btnClick" VerticalAlignment="Bottom" Width="75" Command="{Binding ClickCommand}">Click me</Button>
                <TextBlock Height="21" Margin="12,44,0,0" Name="textBlock1" VerticalAlignment="Top" Text="UserName:" HorizontalAlignment="Left" Width="62" />
                <TextBlock Margin="12,93,0,0" Name="textBlock2" Height="21" HorizontalAlignment="Left" VerticalAlignment="Top" Width="62" Text="Age:" />
                <TextBlock Height="21" Margin="99,44,117,0" Name="tbUserName" Text="" VerticalAlignment="Top" />
            <TextBlock Height="21" Margin="99,93,117,0" Name="tbAge" Text="{Binding userInfo.Age}" VerticalAlignment="Top" />
        </Grid>
    </Window>
    Xaml View
        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;
                }
            }
        }
    View cs
        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");
                }
            }
        }
    Model
  • 相关阅读:
    C#中ConnectionStrings和AppSettings的区别
    VS2010 生成的程序在其他电脑上不运行的问题
    装修经验
    在Linux下安装rar for linux
    判断二叉搜索树的后序遍历序列
    二维数组中的查找某个数
    Spring MVC执行原理
    将二叉搜索树转换成一个排序的双向链表
    打印二叉树中所有分支之和等于某个数
    ObjectiveC中public、protected、private的使用[转]
  • 原文地址:https://www.cnblogs.com/luohengstudy/p/4633508.html
Copyright © 2020-2023  润新知