六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 34|回复: 0

[Silverlight入门系列]使用MVVM模式(6):使用Behavior

[复制链接]

升级  32%

4

主题

4

主题

4

主题

童生

Rank: 1

积分
16
 楼主| 发表于 2013-1-28 12:09:55 | 显示全部楼层 |阅读模式
Behavior把一些常用的行为封装成可重复使用的组件(Component)在理想状况下,Designer(设计师)domain expert(特定领域的专家,例如财会人员、HR人员、或MIS)甚至可以完全不需要具备程序设计的观念,只需要了解基础的事件(Event)观念,就可以顺利的开发出一套系统,若需要实现特定的功能时,可商请developere为他们开发所需要的Behaviordesigner只需要取得这些Behavior并使用即可。例如,界面设计人员可以使用Expression Blend把一个Behavior拖到一个界面元素上,比如右键点击以后启动一段动画这个行为,这个界面元素就会自动执行,岂不是很清爽!(当然,执行函数还是要编程人员编写),来个例子:
界面xaml:
 
<div class="cnblogs_code">View Code <div class="cnblogs_code_hide"> 1 <UserControl 2     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 5     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 6     xmlns:wm="clr-namespace:AsycValidation" 7     xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" x:Class="AsycValidation.MainPage" 8     mc:Ignorable="d" 9     x:Name="MyUserControl"10     d:DesignHeight="300" d:DesignWidth="400">11 12     <Grid x:Name="Layout" >13         <TextBlock Height="32" HorizontalAlignment="Left" Margin="41,53,0,0" x:Name="textBlock1" Text="Company:" VerticalAlignment="Top" Width="66" />14         <TextBox Height="31" HorizontalAlignment="Left" Margin="120,45,0,0" x:Name="textBox1" Text="{Binding CompanyName, Mode=TwoWay, NotifyOnValidationError=True}" VerticalAlignment="Top" Width="119" />15         <TextBox Height="30" HorizontalAlignment="Left" Margin="120,104,0,0" x:Name="textBox2" Text="{Binding CompanyID, Mode=TwoWay, NotifyOnValidationError=True}" VerticalAlignment="Top" Width="119" />16         <Button Content="Button" Height="36" HorizontalAlignment="Left" Margin="120,156,0,0" x:Name="button1" VerticalAlignment="Top" Width="81" >17             <i:Interaction.Triggers>18                 <i:EventTrigger EventName="Click">19                     <ei:CallMethodAction MethodName="button1_Click" TargetObject="{Binding ElementName=MyUserControl}"/>20                 </i:EventTrigger>21                 <i:EventTrigger>22                     <ei:CallMethodAction MethodName="button1_loaded" TargetObject="{Binding ElementName=MyUserControl}"/>23                 </i:EventTrigger>24             </i:Interaction.Triggers>25         </Button>26     </Grid>27 </UserControl>
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表