wpf silverlight mvvm mvc 种种
2012-05-16 17:13
218 查看
最近在研究wp7的开发,其实一直不明白为什么wp7的开发模板要叫silverlight,我一开始还以为应该和winform很相似
干了多年的web开始,渐渐忽视了对winform领域的关注,才发现winform已经发展到wpf到silverlight了.
现在我在vs2010已经看到什么wpf的模板了,只有silverlight的.
其实最另我关注并不是这种新的应用程序UI界面,而是发明了一种叫mvvm的架构.
多少年来,我们一直在说美工与程序的分开,在web开发方面,因为ajax的出现,不管用不用微软MVC的模板,都可以实现美工与程序分开,因为我们所有的逻辑都可以在一下纯粹的HTML上面完成.
但是winform上面还是要用click事件,直到出现了wpf.它用控件的一个属性command,来代替onclick事件,所以美工人员可以专门做界面,程序员专门做程序,界面与程序之间靠一个viewmodel类来实现关联
下面代码说话
这里高亮显示的部分是新加的,特别是很多网上的用例都没有强调 xmlns:local="clr-namespace:SilverlightApplication2"
这个KEY的添加,所以我在刚开始写的时候经常会报
local是未定义节点的错误
<UserControl.DataContext> <!--声明创建一个BtnViewModel的实例-->
<local:BtnViewModel/>
</UserControl.DataContext>
表示实例化一个叫btnviewmodel的类
coomand="{binding brncommand}"表示绑定一个叫brncommand的类
BtnCommand类是这样写的
我们还要建一个viewmodel的类
这样一来,我们就实现了click事件了,美工可以单纯的做他的页面,程序可以写他的类库,完全不用去碰界面的CS代码.
干了多年的web开始,渐渐忽视了对winform领域的关注,才发现winform已经发展到wpf到silverlight了.
现在我在vs2010已经看到什么wpf的模板了,只有silverlight的.
其实最另我关注并不是这种新的应用程序UI界面,而是发明了一种叫mvvm的架构.
多少年来,我们一直在说美工与程序的分开,在web开发方面,因为ajax的出现,不管用不用微软MVC的模板,都可以实现美工与程序分开,因为我们所有的逻辑都可以在一下纯粹的HTML上面完成.
但是winform上面还是要用click事件,直到出现了wpf.它用控件的一个属性command,来代替onclick事件,所以美工人员可以专门做界面,程序员专门做程序,界面与程序之间靠一个viewmodel类来实现关联
下面代码说话
<UserControl x:Class="SilverlightApplication2.MainPage" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="d" d:DesignHeight="300" d:DesignWidth="400" xmlns:local="clr-namespace:SilverlightApplication2" > <UserControl.DataContext> <!--声明创建一个BtnViewModel的实例--> <local:BtnViewModel/> </UserControl.DataContext> <Grid x:Name="LayoutRoot" Background="White"> <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="109,118,0,0" Name="button1" VerticalAlignment="Top" Width="75" Command="{Binding BtnCommand}"/> </Grid> </UserControl>
这里高亮显示的部分是新加的,特别是很多网上的用例都没有强调 xmlns:local="clr-namespace:SilverlightApplication2"
这个KEY的添加,所以我在刚开始写的时候经常会报
local是未定义节点的错误
<UserControl.DataContext> <!--声明创建一个BtnViewModel的实例-->
<local:BtnViewModel/>
</UserControl.DataContext>
表示实例化一个叫btnviewmodel的类
coomand="{binding brncommand}"表示绑定一个叫brncommand的类
BtnCommand类是这样写的
public class BtnCommand:ICommand { public bool CanExecute(object parameter) { return true; } public event EventHandler CanExecuteChanged; public void Execute(object parameter) { if (parameter != null) { MessageBox.Show(parameter.ToString()); } else { MessageBox.Show("未设置CommandParameter"); } } }
我们还要建一个viewmodel的类
public class BtnViewModel { public ICommand BtnCommand { get; set; } public BtnViewModel() { BtnCommand = new BtnCommand(); } }
这样一来,我们就实现了click事件了,美工可以单纯的做他的页面,程序可以写他的类库,完全不用去碰界面的CS代码.
public class BtnViewModel { public ICommand BtnCommand { get; set; } public BtnViewModel() { BtnCommand = new BtnCommand(); } }
相关文章推荐
- 电子书下载:Pro WPF and Silverlight MVVM: Effective Application Development with Model-View-ViewModel
- WPF/Silverlight中的MVVM模式能否在WinForm/ASP.NET上运用?
- Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
- MvvmLight学习篇—— Mvvm Light Toolkit for wpf/silverlight系列(子林)
- WPF/Silverlight中MVVM运用
- Pro WPF and Silverlight MVVM:第5章 Event and Command 读书笔记
- Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
- Mvvm Light Toolkit for wpf/silverlight系列之Messenger
- Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
- Mvvm Light Toolkit for wpf/silverlight系列之搭建mvvmlight开发框架
- 初识 WPF/Silverlight MVVM模式
- Pro WPF and Silverlight MVVM 第4章ViewModel 读书笔记
- Silverlight/WPF/Windows Phone 开发之MVVM设计模式之入门
- 【转】Mvvm Light Toolkit for wpf/silverlight系列之搭建mvvmlight开发框架
- Mvvm Light Toolkit for wpf/silverlight系列之搭建mvvmlight开发框架 .
- WPF/Silverlight中的MVVM模式能否在WinForm/ASP.NET上运用?
- Mvvm Light Toolkit for wpf/silverlight系列之Command和Events
- Mvvm Light Toolkit for wpf/silverlight系列之数据绑定
- [分享]一些在 WPF/Silverlight 中应用 MVVM 模式时可能会有点用途的代码
- WPF/Silverlight中的MVVM模式能否在WinForm/ASP.NET上运用?