巧用Delegate在SilverLight多个页面、控件中传递回调方法

    在论坛中看到经常有人碰到如何在SilverLight多个页面或者控件中传替参数或者值的问题,今天抽空通过Delegate机制实现回调实例方法重设动画参数的DEMO,分享给大家。最终结果如图:

DEMO 效果
    演示地址:
http://xingjunli.webs.com/DelegateDemo.html
    参考资料:动画概述:http://msdn.microsoft.com/zh-cn/library/cc189019(VS.95).aspx 委托:http://msdn.microsoft.com/zh-cn/library/900fyy8e.aspx
   1、初识委托:
      委托delegate有点类似于非托管C/C++中的函数指针,在C#中通过委托机制来回掉实例方法,静态方法等(更重要是委托为托管代码,能保证回调方法的类型的安全)
   2、使用委托回调实例方法:  
      2.1、用C#的delegate关键字来定义回掉函数的签名(本示例中我们通过一个单独的类来实义委托以提高重用):
   
     2.2、在子窗体类中我们定义一个委托类型对象如:
  
     2.3、在父窗体中实例化子窗体时将实例方法传递给委托:
  

     2.4、用我们熟悉的方法调用语法来调用回掉函数:

     3、上面我们应用委托实现了最简单的应用,实际工作中会复杂的多;我们的编译器和CLR为我们做了大量幕后工作以减轻使用的复杂性;如需了解更多请参考:委托(C# 编程指南)http://msdn.microsoft.com/zh-cn/library/ms173171.aspx
   实现步骤(附源代码):
     声明委托类型:

 
    子窗体XAML:

 
    子窗体CS:

 
    父窗体XAML:

 
    父窗体CS:

 
  结束语:SilverLight同.Net FrameWork本身已经很好的结合起来,C#中一些实用的编程机制(如:委托),在SL中合理运用,将给我们带来意想不到的收获!

   
   

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值