19
A
回答
29
不幸的是,沒有這樣的事件。您可以使用布爾在載入的方法,以確保你的東西只觸發一次 -
if(!IsSetUp)
{
MySetUpFunction();
IsSetUp = true;
}
退房這裏的WPF的Windows生命週期事件:
http://msdn.microsoft.com/en-us/library/ms748948.aspx#Window_Lifetime_Events
5
或者到存儲一個布爾標誌,你可以使用擴展方法和委託打包僞造Loaded
只發射一次。
public static void OnLoadedOnce(
this UserControl control,
RoutedEventHandler onLoaded)
{
if (control == null || onLoaded == null)
{
throw new ArgumentNullException();
}
RoutedEventHandler wrappedOnLoaded = null;
wrappedOnLoaded = delegate(object sender, RoutedEventArgs e)
{
control.Loaded -= wrappedOnLoaded;
onLoaded(sender, e);
};
control.Loaded += wrappedOnLoaded;
}
...
class MyControl : UserControl
{
public MyControl()
{
InitializeComponent();
this.OnLoadedOnce(this.OnControlLoaded /* or delegate {...} */);
}
private void OnControlLoaded(object sender, RoutedEventArgs e)
{
}
}
相關問題
- 1. 是什麼$(文件)。就緒(初始化)和$(文件)。在之間的差異( '準備好',初始化)
- 2. Sencha Touch 2 - 什麼是初始化和初始化?
- 3. AngularJS - 初始化和加載
- 4. 類加載和初始化
- 5. 加載模塊和初始化模塊之間的區別?
- 6. 什麼是ADD_ACTION(「初始化
- 7. 什麼是初始化塊?
- 8. 初始化和操作之間會發生什麼?
- 9. create_before和rails在初始化之間有什麼區別?
- 10. 什麼是google.maps.event.addDomListener(窗口,'加載',初始化)
- 11. 什麼是初始化加載變量的最佳做法
- 12. 表單初始加載後會發生什麼事件?
- 13. 像初始化和普通數組之間的區別是什麼?
- 14. 紅寶石,是什麼和初始化一個setter之間的差值方法
- 15. fullpage.js階段之間的初始事件
- 16. 跨文件的依賴變量之間初始化的順序是什麼?
- 17. 用=初始化和用{}初始化有什麼區別?
- 18. 初始化後添加backbone.js事件
- 19. 這些對象初始化之間有什麼不同?
- 20. 初始化和加載的UITableViewCell
- 21. 休眠懶惰加載和初始化
- 22. angularjs銷燬和初始化事件
- 23. Catch ngRepeat初始化事件
- 24. QtMainWindow初始化事件
- 25. 文件加載後初始化onsenui
- 26. 初始化jQuery插件($ .live()) - DOM加載
- 27. 「值初始化」是什麼意思?
- 28. 什麼是結構初始化爲C++
- 29. 什麼是未初始化常量?
- 30. 在加載事件或構造函數中初始化屬性?
那麼這是愚蠢的,我不應該使用這樣的警衛子句。但這是正確的答案,所以這是你的觀點。 – 2010-07-21 20:12:42
同意 - 你可以創建自己的窗口類繼承窗口,並在整個項目中實現一個事件,如果這是你經常做的事情。 – brendan 2010-07-21 20:52:44
另請參閱:http://blogs.msdn.com/b/mikehillberg/archive/2006/09/19/loadedvsinitialized.aspx – 2012-05-09 15:28:38