• 从零开始搭建Wpf初学篇2-Prism实现界面绑定


    前言:使用Prism作为MVVM框架进行搭建

    第一步:在包管理器中安装Prism

    第二步:建立Views和ViewModels文件夹,把MainWindow移入Views,在ViewModels建立MainWindowViewModel,结构如下:

    第三步:MainWindowViewModel继承BindableBase(帮我们实现了INotifyPropertyChanged,这样属性改变能直接驱动界面变化),并加入如下代码,将之前MainWindow上的部分功能移植过来,用MVVM的方法实现属性和命令的绑定。

    class MainWindowViewModel: BindableBase
    {
        private string _noticeText = "欢迎来到AIStudio.Wpf.Client,让我们一起从0开始学Wpf框架搭建吧!";
        public string NoticeText
        {
            get { return _noticeText; }
            set
            {
                SetProperty(ref _noticeText, value);
            }
        }

        private ICommand _clickCommand;
        public ICommand ClickCommand
        {
            get
            {
                return this._clickCommand ?? (this._clickCommand = new DelegateCommand(() => this.Click()));
            }
        }

        private void Click()
        {
            MessageBox.Show("HelloWorld, 您点击了一下Button按钮");
        }
    }

    第四步:将View与ViewModel进行关联,并进行属性绑定。

    this.DataContext = new MainWindowViewModel();

    <Grid>
        <TextBlock HorizontalAlignment="Center" Margin="0,160,0,0" Text="{Binding NoticeText}" TextWrapping="Wrap" VerticalAlignment="Top"/>
        <Button Content="点击我" HorizontalAlignment="Left" Margin="355,236,0,0" VerticalAlignment="Top" Command="{Binding ClickCommand}"/>
    </Grid>

    第五步:运行看效果,但是提示报错,因为我们移动了MainWindow的位置,需要改下启动地址。

    再运行就和之前的效果一模一样了。

    后续:下一章将实现,Prism进行区域Region视图注入。

    源码地址:https://gitee.com/akwkevin/aistudio.-wpf.-client.-stepby-step

    Prism相关推荐文章:Prism 8.0 入门(上):Prism.Core

    另外推荐一下我的Wpf客户端框架:https://gitee.com/akwkevin/aistudio.-wpf.-aclient

    作者:竹天笑
    互相学习,提高自己。
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
  • 相关阅读:
    简单的描述关于开发部署产生401,500的错误处理
    文件的批量打包下载
    json的序列化与反序列化
    实现MD5的加密和解密
    dropdownlist的OnSelectedIndexChanged方法不触发
    sqlserver错误2,error 40
    C#存储过程调用的三个方法
    SQL Server 错误:924 解决方法
    判断是否在时间间隔内
    切面添加日志
  • 原文地址:https://www.cnblogs.com/akwkevin/p/15111269.html
Copyright © 2020-2023  润新知