C# 当我按Add时创建一个submit按钮,一个按钮下有多个事件

C# 当我按Add时创建一个submit按钮,一个按钮下有多个事件,c#,wpf,C#,Wpf,你知道我如何让一个点击事件创建另一个具有不同点击事件的按钮吗 我有一个WPF应用程序,使使用EF。因此,我被困在需要按下按钮Add的部分,该按钮将冻结其他按钮,然后创建另一个按钮Submit,其中包含向表中添加数据的代码。我试过msdn的一些建议,但不起作用。以下是先前在XAML中添加的名为b1的按钮的代码: public partial class RoutedEventAddRemoveHandler { void MakeButton(object sender, RoutedEventA

你知道我如何让一个点击事件创建另一个具有不同点击事件的按钮吗

我有一个WPF应用程序,使使用EF。因此,我被困在需要按下按钮Add的部分,该按钮将冻结其他按钮,然后创建另一个按钮Submit,其中包含向表中添加数据的代码。我试过msdn的一些建议,但不起作用。以下是先前在XAML中添加的名为b1的按钮的代码:

public partial class RoutedEventAddRemoveHandler {
void MakeButton(object sender, RoutedEventArgs e)
{
    Button b2 = new Button();
    b2.Content = "New Button";
    // Associate event handler to the button. You can remove the event  
    // handler using "-=" syntax rather than "+=".
    b2.Click  += new RoutedEventHandler(Onb2Click);
    root.Children.Insert(root.Children.Count, b2);
    DockPanel.SetDock(b2, Dock.Top);
    text1.Text = "Now click the second button...";
    b1.IsEnabled = false;
}
void Onb2Click(object sender, RoutedEventArgs e)
{
    text1.Text = "New Button (b2) Was Clicked!!";
}

我甚至尝试了最明显的解决方案,简单地在click event中直接创建另一个带有click event的按钮。

我建议使用另一种方法,立即将submitbutton放入xaml代码中,但将其设置为不可见和禁用

然后在事件处理程序中,您只需使其可见并启用它

处理提交的事件处理程序、按钮的动态创建、将其挂接到表单中等等都可以避免,并且不必在运行时完成


这将产生比原始方法更好的可读性代码和可维护性代码,除非您有很好的理由这样做。

我已经完成了以下编码,它对我有效

private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            Button oButton = new Button();
            oButton.Name = "btnMessage";
            oButton.Content = "Message Show";
            oButton.Height = 50;
            oButton.Width = 50;
            oButton.Click += new RoutedEventHandler(oButton_Click);
            //root is a stack panel
            root.Children.Insert(root.Children.Count, oButton);
            DockPanel.SetDock(oButton, Dock.Top);

        }

        void oButton_Click(object sender, RoutedEventArgs e)
        {
            MessageBox.Show("Hello World !");
        }

我不会立即创建按钮,而是立即操作按钮的可见性和/或它已启用的事实,是或否,而不是经历所有这些麻烦。如果可以在xaml中使用visible=false的submit按钮,并在需要时将其可见性更改为true,为什么要创建一个新按钮?根变量是什么?删除所有这些,并使用适当的XAMLAwesome,这解决了我的问题,没有任何不必要的并发症。我将可见性设置为“折叠”,这样按钮就不会占用任何空间。谢谢: