首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >来自类静态方法的C# WPF设置按钮单击事件处理程序

来自类静态方法的C# WPF设置按钮单击事件处理程序
EN

Stack Overflow用户
提问于 2017-01-06 05:39:09
回答 1查看 970关注 0票数 0

有没有办法从类静态方法中设置按钮单击路由的事件处理程序?

我有一个带有一个按钮和两个参数的UserControl项目"SendButton“:

代码语言:javascript
复制
public SendButton(string buttonText, string eventHandler)
        {
            InitializeComponent();
            ButtonBlock.Content = buttonText;

            // This is what I´ve tried
            ButtonBlock.Click += (Func<RoutedEventHandler>) typeof(RoutedEvents).GetMethod(eventHandler);

            // This is what I want to achieve:
            // ButtonBlock.Click += RoutedEvents.WhatIsYourName();
            // But it doesn´t work anyways, because of a missing arguments
        }

然后是类内的静态方法

代码语言:javascript
复制
public class RoutedEvents
    {
        public static void WhatIsYourName(object sender, TextChangedEventArgs e)
        {
            // 
        }
    }

我想这样称呼它:

代码语言:javascript
复制
new SendButton("Send", "WhatIsYourName");  

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-06 05:48:13

用户控件的构造函数应以RoutedEventHandler作为参数:

代码语言:javascript
复制
public SendButton(string buttonText, RoutedEventHandler clickHandler)
{
    InitializeComponent();

    ButtonBlock.Content = buttonText;
    ButtonBlock.Click += clickHandler;
}

作为参数传递的处理程序方法必须具有正确的签名,并将RoutedEventArgs作为第二个参数:

代码语言:javascript
复制
public class RoutedEvents
{
    public static void WhatIsYourName(object sender, RoutedEventArgs e)
    {
        // 
    }
}

然后像这样传递它(不带括号):

代码语言:javascript
复制
new SendButton("Send", RoutedEvents.WhatIsYourName);
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41495159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档