Silverlight 2 学习笔记之事件的重复绑定问题
?
事件重復綁定是在Silverlight2應用程序開發過程中,開發者容易忽視,時常會為整個Silverlight2應用程序產生重大問題的原因,如果你發現你的Silverlight2應用程序在隨著運行過程時間增長而開始變慢時,你就需要考慮代碼邏輯是否有事件的重復綁定.
?
綁定一個事件通常是:
void Page_Loaded(object sender, RoutedEventArgs e)
{
cli.GetAllProductsCompleted += new EventHandler<GetAllProductsCompletedEventArgs>(cli_GetAllProductsCompleted);
cli.GetAllProductsAsync();?????
}??????
然后定義eventHandler:
void cli_GetAllProductsCompleted(object sender, GetAllProductsCompletedEventArgs e)
{
}
如果你把上面的代碼放在一個XAML用戶控件的Loaded事件中,并且在另一個XAML頁面中應用了這個控件,那么上面的綁定事件代碼,就會在每次觸發Loaded事件時運行,后果是當你觸發上面的事件就會產生N++次的eventHandler,這會使你的事件進入一個排隊狀態,同時你的Silverlight2應用程序也會變得越來越慢.
正確的方法是在用戶控件的構造函數里聲明事件:
pubic Page()
{
InitializeComponent();
cli.GetAllProductsCompleted += new EventHandler<GetAllProductsCompletedEventArgs>(cli_GetAllProductsCompleted);
cli.GetAllProductsAsync();?????
}??????
這樣控件的eventHandler永遠只會綁定一次,即使你重新實例化這個對象,它那的構造函數只會執行一次.
轉載于:https://www.cnblogs.com/slteam/archive/2008/11/21/1338550.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Silverlight 2 学习笔记之事件的重复绑定问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 真菌会存活于被子上吗
- 下一篇: 课程结束