silverlight   发布时间:2022-05-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了The run order about Loaded event and OnApplyTemplate in custom control of Silverlight 2 beta 2大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

概述

I' ve created a customer control MenuLink.cs in silverlight 2beta2, and the code like this: public class MenuLink : Control  {          public MenuLink( )         {                       DefaultStyleK

I' ve created a customer control MenuLink.cs in silverlight 2beta2,and the code like this:

  1. @H_618_23@public @H_618_23@class MenuLink : Control
  2.  { 
  3.         @H_618_23@public MenuLink( )
  4.         {          
  5.             DefaultStyleKey = @H_618_23@typeof(MenuLink);
  6.             @H_618_23@this.Loaded += @H_618_23@new routedEventHandler(MenuLink_Loaded);
  7.         }
  8.         @H_618_23@void MenuLink_Loaded(@H_618_23@object sender, routedEventArgs E)
  9.         {
  10.             
  11.         }
  12.        
  13.         @H_618_23@public @H_618_23@override @H_618_23@void OnApplyTemplate()
  14.         {
  15.             @H_618_23@base.onApplyTemplate();           
  16.         }
  17. }

There is a canvas named 'canMenu' in page 'Page.xaml',and i add the menulink into the canvas dynamicly:

  1.  @H_618_23@public Page()
  2.         {
  3.             initializeComponent();
  4.             @H_618_23@this.Loaded += @H_618_23@new routedEventHandler(Page_Loaded);            
  5.         } 
  6.         @H_618_23@void Page_Loaded(@H_618_23@object sender, routedEventArgs E)
  7.         {
  8.             MenuLink ml = @H_618_23@new MenuLink(@H_618_23@true);            
  9.             canMenu.Children.Clear();
  10.             canMenu.Children.Add(ml);
  11.         }

In this situation,the event in MenuLink.cs are called by this orders:

  1. 1. @H_618_23@public MenuLink( @H_618_23@bool a )
  2. 2. @H_618_23@void MenuLink_Loaded(@H_618_23@object sender, routedEventArgs E)
  3. 3. @H_618_23@public @H_618_23@override @H_618_23@void OnApplyTemplate()

But if i add the menulink after downloading a xml file in page.cs like this:

  1.   @H_618_23@public Page()
  2.         {
  3.             initializeComponent();
  4.             @H_618_23@this.Loaded += @H_618_23@new routedEventHandler(Page_Loaded);            
  5.         } 
  6.         @H_618_23@void Page_Loaded(@H_618_23@object sender, routedEventArgs E)
  7.         {
  8.             WebClient webclient = @H_618_23@new WebClient();
  9.             webclient.DownloadStringCompleted += @H_618_23@new DownloadStringCompletedEventHandler(webclient_DownloadStringCompleted);
  10.             webclient.DownloadStringAsync(@H_618_23@new Uri("a.xml",UriKind.RelativE));          
  11.         }
  12.         @H_618_23@void webclient_DownloadStringCompleted(@H_618_23@object sender, DownloadStringCompletedEventArgs E)
  13.         {
  14.             MenuLink ml = @H_618_23@new MenuLink(@H_618_23@true);            
  15.             canMenu.Children.Clear();
  16.             canMenu.Children.Add(ml);
  17.         }

Then the order of events/methods called in MenuLink.cs like this:

  1. 1. @H_618_23@public MenuLink( @H_618_23@bool a )
  2. 2. @H_618_23@public @H_618_23@override @H_618_23@void OnApplyTemplate()
  3. 3. @H_618_23@void MenuLink_Loaded(@H_618_23@object sender, routedEventArgs E)

 

I really don't kNow why?????

大佬总结

以上是大佬教程为你收集整理的The run order about Loaded event and OnApplyTemplate in custom control of Silverlight 2 beta 2全部内容,希望文章能够帮你解决The run order about Loaded event and OnApplyTemplate in custom control of Silverlight 2 beta 2所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。