目的是在前端增加一个自定义控件里的button后,按下动作可以调用使用该控件的页面的事件
首先在前端增加自定义控件里加入一个button,在其cs页面里注册点击事件
var btnAdd = GetTemplateChild("btnAdd") as FlatButton;if (btnAdd != null){btnAdd.Click -= BtnAdd_Click;btnAdd.Click += BtnAdd_Click;}
然后定义路由以及事件
/// <summary>/// 注册控件路由/// </summary>public static readonly RoutedEvent BtnAdd =EventManager.RegisterRoutedEvent("BtnAddClick", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(Button));/// <summary>/// 声明外部调用事件/// </summary>public event RoutedEventHandler BtnAddClick{add{AddHandler(BtnAdd, value);}remove{RemoveHandler(BtnAdd, value);}}public void BtnAdd_Click(object sender, RoutedEventArgs e){RoutedEventArgs args = new RoutedEventArgs(BtnAdd, this);RaiseEvent(args);}
最后,在使用该自定义控件的前端里加入该事件
<usercontrol BtnAddClick="BtnAddClick" ></usercontrol >
在后端写入事件触发的内容
private void BtnAddClick(object sender, RoutedEventArgs e){messageBox.Show("自定义控件的button被按下");}