WPF系列教程——(二)使用Prism实现MVVM设计模式

WPF系列教程——(二)使用Prism实现MVVM设计模式

2023年7月19日发(作者:)

WPF系列教程——(⼆)使⽤Prism实现MVVM设计模式本⽂假设你已经知道MVVM设计模式是什么,所以直接进⼊正题,今天我们就⽤Prism来实现WPF的MVVM设计模式,百度上关于Prism的教程少之⼜少,仅有的⼏个教程也是使⽤的很古⽼的版本,反正也是看不懂写的啥玩意,下⾯以最简洁明了的代码来演⽰事件绑定和数据绑定。1. 准备使⽤上⼀节的Demo,来继续完成本节教程WPF系列教程——(⼀)仿TIM QQ界⾯PrismPrism是⼀个MVVM框架,它包括,依赖注⼊(通过Unity或MEF)、Commands, EventAggregator。在NuGet包管理器中搜索Prism,找到并添加到项⽬Prisminteractivity每⼀个控件都会有很多不⼀样的事件,这⾥使⽤interactivity来绑定控件的事件, 在程序集中搜索interactivity,并添加引⽤。命名空间xmlns:i="/expression/2010/interactivity"interactivity创建⼀个ViewModels⽂件夹,并创建,视图模型的命名统⼀使⽤视图名+"ViewModel",并继承BindableBase。2.开始1. 在ViewModel中添加窗⼝关闭事件委托public DelegateCommand CloseCommand { get; set; }在构造函数中实例化CloseCommand = new DelegateCommand(()=> { wn(); });在关闭按钮中绑定Command="{Binding CloseCommand}"2. ListView中Item的点击事件我们要实现的是点击Item,名⽚就会显⽰对应的头像和昵称。在ViewModel中创建Friend类public class Friend { public string Nickname { get; set; } //昵称 public BitmapImage Head { get; set; } //头像 }ListView数据源private ObservableCollection friends; public ObservableCollection Friends { get { return friends; } set { friends = value; } }添加测试数据friends = new ObservableCollection();(new Friend() {Nickname="Go to hell",Head= new BitmapImage(new Uri("pack://application:,,,/Images/")) });(new Friend() { Nickname = "糖宝", Head = new BitmapImage(new Uri("pack://application:,,,/Images/")) });(new Friend() { Nickname = "胖虎", Head = new BitmapImage(new Uri("pack://application:,,,/Images/")) });(new Friend() { Nickname = "⼩花", Head = new BitmapImage(new Uri("pack://application:,,,/Images/")) });(new Friend() { Nickname = "隔壁⽼王", Head = new BitmapImage(new Uri("pack://application:,,,/Images/")) });(new Friend() { Nickname = "狗⼦", Head = new BitmapImage(new Uri("pack://application:,,,/Images/"))});ListView绑定数据源ItemsSource="{Binding Friends}"ListView数据模板把数据模板中昵称和⽹名换成Friend中对应的属性,完成数据绑定。 <> Item点击事件在后台定义点击事件委托public DelegateCommand SelectItemChangedCommand { get; set; }在视图中添加点击事件EventName指定绑定的事件名称,Command绑定ViewModel中之前定义好的委托,CommandParameter传递⾄ViewModel的参数,这⾥传的值就是当前ListView对象。 在构造函数中实例化SelectItemChangedCommand参数P就是当前的ListView对象他的SelectedItem属性就是选中的Item,将SelectedItem转换为Friend对象,并赋值给名⽚中头像和昵称的数据源。SelectItemChangedCommand = new DelegateCommand((p)=>{ ListView lv = p as ListView; Friend friend = edItem as Friend; Head= ; Nickname = me; });3. 名⽚中的头像和昵称数据源private BitmapImage head; public BitmapImage Head { get { return head; } set { SetProperty(ref head, value); } } private string nickname; public string Nickname { get { return nickname; } set { SetProperty(ref nickname, value); } }在视图中绑定头像Source="{Binding Head}"昵称Text="{Binding Nickname}"演⽰演⽰如果本教程对你有所帮助欢迎持续关注~~

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689718101a280679.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信