zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    理解FreeRTOS的任务状态机制
    stm32【按键处理:单击、连击、长按】
    stm32f4单片机 硬件浮点运算
    stm32 HAL库 串口无法接收数据的问题
    Single Sign On —— 简介(转)
    关于第三方库安装时很慢或者读取超时问题处理
    设计模式》状态机模式
    设计模式》责任链模式
    设计模式》访问者模式
    设计模式》策略者模式
  • 原文地址:https://www.cnblogs.com/luohengstudy/p/4633508.html
Copyright © 2011-2022 走看看