C# 从XAML中的另一个源文件引用click方法?
我有一个指定了单击方法的按钮。我想将该方法移动到另一个CS文件,以便在其他地方重用它。在XAML中,是否可以从Pages源文件之外的CS源文件引用方法click methodC# 从XAML中的另一个源文件引用click方法?,c#,xaml,uwp,C#,Xaml,Uwp,我有一个指定了单击方法的按钮。我想将该方法移动到另一个CS文件,以便在其他地方重用它。在XAML中,是否可以从Pages源文件之外的CS源文件引用方法click method 我想在另一个源文件中找到不要按删除按钮\u单击 ButtonMethods.cs 然后在我的XAML页面中使用它 MyPage.xaml 为了做到这一点,我需要在XAML中编写什么 我想我需要: xmlns:helpermethods=“使用:CoreProject.helpermethods” 那么 但我有编译器错误
我想在另一个源文件中找到不要按删除按钮\u单击
ButtonMethods.cs
然后在我的XAML页面中使用它
MyPage.xaml
为了做到这一点,我需要在XAML中编写什么
我想我需要:
xmlns:helpermethods=“使用:CoreProject.helpermethods”
那么
但我有编译器错误。。。CS1002和CS1513。显然这不是正确的语法。这是可能的吗?简易豌豆:
<Button Click="{x:Bind helpermethods:ButtonMethods.ButtonClick}" />
您可以从按钮的单击处理程序调用按钮方法中的方法
像这样:
private void OnSomebodyClickedTheRedButtonWhenTheyWereNotMeantTo(object sender, RoutedEventArgs args)
{
// do some other stuff with sender - find out which button was clicked, etc.
ButtonMethods.RedButtonClicked(sender, args);
}
这将允许您也从这个事件处理程序(如果您愿意的话)在这个类中执行您可能需要的“其他事情”
确保您的方法是静态的,否则每次都需要(不必要地)创建按钮方法类的实例。@EdPlunkett按钮方法是静态的,所以它们不需要和实例?方法essential根据绑定到按钮的对象MyButton.DataContext作为MyObject对按钮本身进行一些状态更改。因此,基本上这些方法查看MyObject
,并在按钮上设置正确的状态。在我的代码的核心部分使用这个click方法是不可能的。我建立了许多参考核心的软件包。我的错,我误解了你的问题。但请看答案——问题是x:Static
仅适用于属性。所以写一个属性。我似乎找不到x:Static
。Windows通用项目不支持静态。不过,使用x:Bind对我来说是可行的。谢谢你带我去看电影answer@visc--请参阅更新;我在这里没有设置UWP应用程序,所以我无法检查它,如果它是错误的,请告诉我。是的,我考虑过这种方法。对我来说,我选择了更少的代码和更少的灵活性。但如果我需要更多的控制,我当然可以走这条路。比如将事件参数传递给my static click处理程序。是的,如果您想知道单击了哪个按钮,或者想更新该视图上的其他属性,那么它肯定很有用。我同意你所说的更少的代码——不要写比你已经需要的更多的代码!很高兴你把它分类了:)而且,在我的例子中,我是动态创建这些按钮的。因此,我没有办法编写按钮单击方法,因为我没有该方法的句柄。:)
public static class ButtonMethods
{
public static RoutedEventHandler ButtonClick => Button_Click;
public static void Button_Click(object sender, RoutedEventArgs e)
{
// stuff
}
}
private void OnSomebodyClickedTheRedButtonWhenTheyWereNotMeantTo(object sender, RoutedEventArgs args)
{
// do some other stuff with sender - find out which button was clicked, etc.
ButtonMethods.RedButtonClicked(sender, args);
}