[英]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.