WPF、MVVM和Prism学习历程

本文记录了作者从WinForm转向WPF的学习历程,重点介绍了Silverlight、XAML、依赖属性和数据绑定的基础知识。通过观看视频和学习资料,作者理解了MVVM模式的核心思想,并介绍了ViewModel和Command类的构建。此外,还简述了Prism作为MVVM框架的作用,提供了相关学习资源。
摘要由CSDN通过智能技术生成

面对从天而降的两个专有名词,今日我开始了漫漫Mvvm和Prism的学习之路。

之前一直在做WinForm的开发,本身WPF就接触的不多,更别提Siverlight了。

好了说正题。


首先是进行5个小时左右的Silverlight学习,资料来源是Lynda.com.Silverlight.5.Essential.Training

主要要学习的核心内容包括

  • XAML(eXtensible Application Markup Language),可扩展应用程序标记语言
  • Dependency Property,依赖属性
  • DataBinding,数据绑定

通俗来讲,XAML就是用XML的形式将界面“画”出来,DP则是Property的增强版,数据绑定则是建立传输数据的通道。


XAML拥有丰富的特性让你实现各种

以下是一个基于PrismWPF MVVM示例,其中包含模型: 首先,创建一个名为“Models”的文件夹,并在其中添加一个名为“Person.cs”的类: ```csharp using System; namespace PrismExample.Models { public class Person { public string FirstName { get; set; } public string LastName { get; set; } public int Age { get; set; } public string Email { get; set; } } } ``` 接下来,创建一个名为“ViewModels”的文件夹,并添加一个名为“MainViewModel.cs”的类。该类将作为我们的主界面的视图模型: ```csharp using Prism.Commands; using Prism.Mvvm; using PrismExample.Models; namespace PrismExample.ViewModels { public class MainViewModel : BindableBase { private Person _person; public Person Person { get { return _person; } set { SetProperty(ref _person, value); } } public DelegateCommand SaveCommand { get; private set; } public MainViewModel() { Person = new Person(); SaveCommand = new DelegateCommand(Save); } private void Save() { // 保存Person信息的代码 } } } ``` 最后,创建一个名为“Views”的文件夹,并在其中添加一个名为“MainWindow.xaml”的文件。在该文件中,我们将使用数据绑定将视图模型绑定到UI元素: ```xaml <Window x:Class="PrismExample.Views.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:vm="clr-namespace:PrismExample.ViewModels" Title="MainWindow" Height="350" Width="525"> <Window.DataContext> <vm:MainViewModel /> </Window.DataContext> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="Auto" /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Label Grid.Row="0" Grid.Column="0" Content="First Name:" /> <TextBox Grid.Row="0" Grid.Column="1" Text="{Binding Person.FirstName, UpdateSourceTrigger=PropertyChanged}" /> <Label Grid.Row="1" Grid.Column="0" Content="Last Name:" /> <TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Person.LastName, UpdateSourceTrigger=PropertyChanged}" /> <Label Grid.Row="2" Grid.Column="0" Content="Age:" /> <TextBox Grid.Row="2" Grid.Column="1" Text="{Binding Person.Age, UpdateSourceTrigger=PropertyChanged}" /> <Label Grid.Row="3" Grid.Column="0" Content="Email:" /> <TextBox Grid.Row="3" Grid.Column="1" Text="{Binding Person.Email, UpdateSourceTrigger=PropertyChanged}" /> <Button Grid.Row="4" Grid.Column="1" Content="Save" Command="{Binding SaveCommand}" /> </Grid> </Window> ``` 现在,运行应用程序,并尝试在文本框中输入一些信息,然后单击“保存”按钮,即可成功保存Person信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值