从用户控件中的一个类存储方法以供以后使用

时间:2015-12-17 16:22:22

标签: c# wpf methods user-controls

我想要的是将一个类所拥有的参数存储在另一个类的变量中以供稍后执行。第一个类是我的MainWindow类,第二个类是UserControl。我想传递的方法将作为UserControl中包含的ListBox的SelectionChanged事件。该方法需要一个只有UserControl在项目发生变化时才知道的参数。

我的方法(在MainWindow中)的示例如下:

public void MethodToPass(string UniqueParameterValue) {
    //...do stuff with special string
}

我会在我的MainWindow类中传递方法,如:

//In MainWindow.Loaded
this.userControlInstance.SelectionChanged += MethodToPass;

因为我没有直接将它分配给ListBox,我会在UserControl中这样做:

private void selectionChanged;
public void SelectionChanged {
    get {
        ...
    } 
    set
    {
        this.selectionChanged = value;
        this.listBox1.SelectionChanged += value;
    }
}

我觉得不是直接设置ListBox是多余的,但我的MainWindow类不允许我"看"它。我也觉得这样做的政治上更正确的方法是将方法存储在变量中,但我不知道如何做或调用它。

这样的操作通常如何完成?

1 个答案:

答案 0 :(得分:0)

您应该能够像往常一样将它们创建为类属性,从而公开用户控件的属性。然后,您可以在用户控件上创建一个由ListBox的SelectionChanged事件引发的事件。您可以使用主窗口上的委托订阅此活动。

查看以下链接: How to access properties of a usercontrol in C#

How do I make an Event in the Usercontrol and Have it Handeled in the Main Form?