簡體   English   中英

事件在代碼隱藏中加載

[英]Event loaded in code-behind

我在xaml中有一個帶有加載事件的擴展器,它運行良好:

<Expander Name="exp" Loaded="expander_Loaded">

但我嘗試隱藏代碼:

   Expander ex = new Expander();
   ex.Loaded += new RoutedEventHandler(expander_Loaded);

   void expander_Loaded(object sender, RoutedEventArgs e)
   {
        //code
   }

而且它不起作用。

當我的擴展器為isLoaded時,如何調用expander_Loaded

使用時

<Expander Name="exp" Loaded="expander_Loaded">

您可以在XAML中插入新的Expander,即顯示屏知道它並可以使用它。

當您這樣做時:

Expander ex = new Expander();
ex.Loaded += new RoutedEventHandler(expander_Loaded);

void expander_Loaded(object sender, RoutedEventArgs e)
{
    //code
}

您創建一個新的Expander對象,為其分配一個事件,然后,如果在該行之后未使用它,則立即將其丟棄。 嘗試

<Expander Name="exp">

//refers to the declared object
exp.Loaded += new RoutedEventHandler(expander_Loaded);

void expander_Loaded(object sender, RoutedEventArgs e)
{
    //code
}

看到它會工作。 此外,如果您想在運行時創建和添加控件,請查看此問題該問題說明了使用Children集合

您無需在代碼標記中關聯事件。 要么刪除Loaded="expander_Loaded"要么刪除ex.Loaded += new RoutedEventHandler(expander_Loaded); 可能兩次執行都會產生這種意想不到的效果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM