簡體   English   中英

從XAML中的另一個源文件引用單擊方法?

[英]Reference click method from another source file in XAML?

我有一個分配了click方法的按鈕。 我想將該方法移到另一個CS文件中,以便在其他地方重用它。 在XAML中是否可以從Pages源文件之外的CS源文件引用方法,click方法?

<Button x:Name="TheRedButton" Click="DoNotPressTheRedButton_Click" />

我想在另一個源文件中找到DoNotPressTheRedButton_Click

ButtonMethods.cs

然后從XAML在我的Page中使用它

MyPage.xaml

為此,我需要在XAML中編寫什么?

我以為我需要:

xmlns:helpermethods="using:CoreProject.HelperMethods"

然后,

<Button x:Name="TheRedButton" Click="helpermethods:ButtonMethods.DoNotPressTheRedButton_Click" />

但是我遇到了編譯器錯誤... CS1002和CS1513。 因此,顯然這不是正確的語法。 這有可能嗎?

十分簡單:

<Button Click="{x:Bind helpermethods:ButtonMethods.ButtonClick}" />

或在WPF中:

<Button Click="{x:Static helpermethods:ButtonMethods.ButtonClick}" />

C#:

public static class ButtonMethods
{
    public static RoutedEventHandler ButtonClick => Button_Click;

    public static void Button_Click(object sender, RoutedEventArgs e)
    {
        // stuff
    }
}

你可以把你的方法ButtonMethods從您的單擊處理TheRedButton

像這樣:

private void OnSomebodyClickedTheRedButtonWhenTheyWereNotMeantTo(object sender, RoutedEventArgs args)
{
    // do some other stuff with sender - find out which button was clicked, etc.

    ButtonMethods.RedButtonClicked(sender, args);
}

這將使您還可以在此類中,從該事件處理程序中執行您可能需要的“其他工作”(如果需要)。

確保您的方法是static ,否則每次都將(不必要)創建ButtonMethods類的實例。

暫無
暫無

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

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