zoukankan      html  css  js  c++  java
  • WPF MVVM手敲简单框架

    好处是,XAML界面Binding到数据后,只需要更新数据,无需再次手动绑定即可完成界面更新。

    1.创捷数据类,Model。
    例如我创建的CarInfo.cs

    namespace MVVMDemo1
    {
        public class CarInfo
        {
            string CarName_;
            string CarID_;
    
            public string CarName
            {
                get { return CarName_; }
                set { CarName_ = value; }
            }
    
            public string CarID
            {
                get { return CarID_; }
                set { CarID_ = value; }
            }
        }
    }
    

    2.创建视图数据类,ViewModel。
    例如我创建的CarInfoViewModel.cs

    using System.ComponentModel;
    
    namespace MVVMDemo1
    {
        public class CarInfoViewModel : INotifyPropertyChanged
        {
            CarInfo CarInfo_;
            public CarInfoViewModel()
            {
                CarInfo_ = new CarInfo() {CarName="河南1",CarID="HMB001" };
            }
    
            public string CarName
            {
                get { return CarInfo_.CarName; }
                set { CarInfo_.CarName = value; RaisePropertyChanged("CarName"); }
            }
            public string CarID
            {
                get { return CarInfo_.CarID; }
                set { CarInfo_.CarID = value; RaisePropertyChanged("CarID"); }
            }
    
            /// <summary>
            /// 实现接口
            /// </summary>
            public event PropertyChangedEventHandler PropertyChanged;
    
            private void RaisePropertyChanged(string propertyInfo)
            {
                PropertyChangedEventHandler handler = PropertyChanged;
                if(handler != null)
                {
                    handler(this,new PropertyChangedEventArgs(propertyInfo));
                }
            }
        }
    }
    

    3.视图界面声明视图模型
    Xaml文件中声明视图模型

    <Window x:Class="MVVMDemo1.MainWindow"
            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:local="clr-namespace:MVVMDemo1"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Window.DataContext>
            <!--声明创建一个CarViewModel的实例-->
            <local:CarInfoViewModel/>
        </Window.DataContext>
        <Grid>
            <TextBox HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" TextWrapping="Wrap" Text="{Binding CarName}" VerticalAlignment="Top" Width="120"/>
            <TextBox HorizontalAlignment="Left" Height="23" Margin="10,38,0,0" TextWrapping="Wrap" Text="{Binding CarID}" VerticalAlignment="Top" Width="120"/>
            <Button Content="Button" HorizontalAlignment="Left" Margin="195,145,0,0" VerticalAlignment="Top" Width="75" Click="Button_Click"/>
        </Grid>
    </Window>
    

    4.关联数据上下文
    主界面后台关联上下文,实现自动刷新数据

    using System.Windows;
    
    namespace MVVMDemo1
    {
        /// <summary>
        /// MainWindow.xaml 的交互逻辑
        /// </summary>
        public partial class MainWindow : Window
        {
    
            CarInfoViewModel carInfoViewModel;
            /// <summary>
            /// 视图模型
            /// </summary>
            public MainWindow()
            {
                InitializeComponent();
                //已经在xaml代码中声明了视图模型实例,获取到引用因此我们可以在按钮click事件里使用它
                carInfoViewModel = base.DataContext as CarInfoViewModel;
            }
            /// <summary>
            /// 更改数据
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Button_Click(object sender, RoutedEventArgs e)
            {
                //更改数据,界面实时更新
                carInfoViewModel.CarID = "";
            }
        }
    }
    

    End

  • 相关阅读:
    sudo,visudo
    修改文件系统属性chattr,查看文件系统属性lsattr
    SUID、SGID、Sticky BIT
    查看系统分区df,查看、设置、修改、删除ACL权限
    添加组groupadd,修改组groupmod,删除组groupdel,将用户加入删除组gpasswd
    添加用户useradd,给用户设置修改密码passwd,修改用户信息usermod,修改用户密码状态chage,删除用户userdel,查询用户及组id,切换用户su,查看当前环境变量env
    日期时间戳互换
    用户信息文件/etc/passwd,影子文件/etc/shadow,组信息文件/etc/group,组密码文件/etc/gshadow,用户管理相关文件
    源码包安装
    Linux配置文件注释注意:行首注释,不要行中注释
  • 原文地址:https://www.cnblogs.com/cnwy/p/13772895.html
Copyright © 2011-2022 走看看