zoukankan      html  css  js  c++  java
  • 简单记录几个wpf学习上的问题[Prism]

    vs2019安装一个 Prism Template Pack 的扩展,就可以直接新建Prism项目了。

    以下依旧是简单记录一点实际开发过程中的遇到的一些小问题(Tips)

    Region

    前面一篇文章里简单记录几个wpf学习上的问题(纯新)布局说了布局
    所以,我在新的Prism项目的MainWindow上面画了一个简单的网格,用来布局我的界面

    Region定义很简单,我定义了两个region并且指定了在网格中的初始位置和占用大小,分别用来用来加载分类view和插件view
    <ContentControl prism:RegionManager.RegionName="CategorysRegion" Grid.Row="1" Grid.Column="0" />
    <ContentControl prism:RegionManager.RegionName="AddonsRegion" Grid.Row="1" Grid.Column="2" Grid.ColumnSpan="2" />

    哎,儿子被留校了,心情不好,先不写了
    ---分---割---线---

    UserControl

    UserControl 是个View,将被加载到Region中去的,所以新建的时候直接新建UserControl就可以了,上一篇关于布局的内容,在UserControl中同样适用

    ViewModel

    Prism 会默认加载按约定命名的ViewModel,需要在view里定义

    xmlns:prism="http://prismlibrary.com/" prism:ViewModelLocator.AutoWireViewModel="True"
    

    这在从PRISM开始学WPF(三)Prism-Region-更新至Prism7.1有写,并且探索了他加载的逻辑

    MVVM应用 View与ViewModel通信中的一些注意点

    要为View绑定Model,首先在ViewModel里定义,像这样:

            private string _tipsString;
            public string TipsString
            {
                get { return _tipsString; }
                set { SetProperty(ref _tipsString, value); }
            }
    

    其中 SetProperty 关键字是必须的,当然ViewModel要想被按约定绑定,需要继承Prism.Mvvm.BindableBase
    然后在View(xaml)中这样绑定 <Label Content="{Binding TipsString}"/>

    Tips :
    值得一提的是 ,如果你想绑定一个动态的数据集合,List<T>是不行的,需要用 ObservableCollection<T>,在开发的时候可以用List来实现,然后用new ObservableCollection<AddonDisplay>(listObj);进行转换。

    MVVM应用 Command

    貌似没什么好说的。。。

  • 相关阅读:
    UGUI优化干货总结
    C#合成解析XML与JSON
    镜头跟随玩家移动
    Unity 5 Skybox 旋转
    多线程实现资源下载
    自定义配置文件的使用及加载-txt
    linux下mysql主从复制搭建
    常用模块-正则re
    Elasticsearch分布式搜索
    redis主从复制原理与优化-高可用
  • 原文地址:https://www.cnblogs.com/hicolin/p/13786587.html
Copyright © 2011-2022 走看看