目的是在前端增加一个自定义控件里的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被按下");
- }