MVVM示例程序

目录

一 定义可通知属性

二 定义前端并绑定

三 运行效果


一 定义可通知属性

 internal class MainViewModel : ObservableObject
 {
     /// <summary>
     /// 供前端的Command命令Binding调用
     /// </summary>
     public RelayCommand ShowCommand { get; set; }


     public MainViewModel()
     {
         ShowCommand = new RelayCommand(Show);
     }
     private string name;
     public string Name
     {
         get { return name; }
         set { name = value; OnPropertyChanged(); }
     }
     private string title;
     public string Title
     {
         get { return title; }
         set { title = value; OnPropertyChanged(); }
     }

     public void Show()
     {
         Title = "你点击了按钮 this is Title";
         Name = "你点击了按钮  this is Name";
         MessageBox.Show(Name);
         WeakReferenceMessenger.Default.Send<string, string>(Title, "Token1");
     }
 }

二 定义前端并绑定

<Window x:Class="ToolKitMVVMTest.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:ToolKitMVVMTest"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TextBox HorizontalAlignment="Left" Margin="145,52,0,0" TextWrapping="Wrap" Text="{Binding Name}" VerticalAlignment="Top" Width="517" Height="189"/>
        <Button Content="Button" HorizontalAlignment="Left" Margin="245,294,0,0" VerticalAlignment="Top" Height="72" Width="278" Command="{Binding ShowCommand}"/>

    </Grid>


</Window>
 /// <summary>
 /// Interaction logic for MainWindow.xaml
 /// </summary>
 public partial class MainWindow : Window
 {
     public MainWindow()
     {
         InitializeComponent();
         this.DataContext = new MainViewModel();
         WeakReferenceMessenger.Default.Register<string, string>(this, "Token1", (s, val) =>
         {
             MessageBox.Show(val);
         });


     }
 }

三 运行效果

相关推荐

  1. 程序员面试—反问示例

    2024-07-20 09:58:03       37 阅读
  2. Avalonia MVVM

    2024-07-20 09:58:03       47 阅读
  3. mvvm相关

    2024-07-20 09:58:03       37 阅读
  4. mvvm模式

    2024-07-20 09:58:03       23 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 09:58:03       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 09:58:03       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 09:58:03       45 阅读
  4. Python语言-面向对象

    2024-07-20 09:58:03       55 阅读

热门阅读

  1. 前端经验:使用sheetjs导出CSV文本为excel

    2024-07-20 09:58:03       17 阅读
  2. autohotkey自动化执行vim命令

    2024-07-20 09:58:03       20 阅读
  3. 开源虚拟加密盘VeraCrypt命令行使用方法

    2024-07-20 09:58:03       14 阅读
  4. DP 203 学习笔记

    2024-07-20 09:58:03       16 阅读
  5. python实现建立一个学生成绩管理系统

    2024-07-20 09:58:03       19 阅读
  6. redis是如何实现过期时间一到就删除key

    2024-07-20 09:58:03       20 阅读
  7. 从零开始!Jupyter Notebook的安装教程

    2024-07-20 09:58:03       16 阅读
  8. django命令

    2024-07-20 09:58:03       15 阅读
  9. 探索光影魔法:WebKit中的CSS文本阴影效果

    2024-07-20 09:58:03       14 阅读