简单记录几个wpf学习上的问题[Prism] Region UserControl ViewModel MVVM应用 View与ViewModel通信中的一些注意点 MVVM应用 Command

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

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

前面一篇文章里简单记录几个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

貌似没什么好说的。。。