UserControl如何触发selectionChanged事件到Window?

时间:2011-10-28 20:28:22

标签: c# .net wpf

我想制作一个ColorPicker userControl,然后放入一个窗口。

当用户单击usercontrol的任何矩形时,我想将此信息返回给Window。我该怎么办?谢谢!

1 个答案:

答案 0 :(得分:2)

您的拾色器UserControl必须实现每次用户单击UserControl的其中一个矩形时引发的事件。如果你不知道如何实现一个事件,只需评论这个答案,我给你一个例子。

以下是示例:您声明自己的事件args(如果需要)以在事件中提供一些信息:

class RectangleClickedEventArgs : EventArgs
{
    public int SomeValue { get; set; }
}

在您的usercontrol中声明事件:

public event EventHandler<RectangleClickedEventArgs> RectangleClicked;

在某些情况下,您可以通过这种方式引发事件(线程安全的方式:

var temp = RectangleClicked;
if (temp != null)
{
    var e = new RectangleClickedEventArgs{ SomeValue = 42};
    temp(this, e);
}

在您的表单中,您订阅了活动:

userControl.RectangleClicked += OnRectangleClicked;

在事件例程中,您可以执行所需的操作:

private void OnRectangleClicked(object sender, RectangleClickedEventArgs e)
{
    // Do what you want to do
}

希望有帮助...