alovejun 发表于 2013-1-28 12:09:55

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

Behavior把一些常用的行为封装成可重复使用的组件(Component),在理想状况下,Designer(设计师)或domain expert(特定领域的专家,例如财会人员、HR人员、或MIS)甚至可以完全不需要具备程序设计的观念,只需要了解基础的事件(Event)观念,就可以顺利的开发出一套系统,若需要实现特定的功能时,可商请developere为他们开发所需要的Behavior,designer只需要取得这些Behavior并使用即可。例如,界面设计人员可以使用Expression Blend把一个Behavior拖到一个界面元素上,比如右键点击以后启动一段动画这个行为,这个界面元素就会自动执行,岂不是很清爽!(当然,执行函数还是要编程人员编写),来个例子:
界面xaml:
 
<div class="cnblogs_code">http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView 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>
页: [1]
查看完整版本: [Silverlight入门系列]使用MVVM模式(6):使用Behavior