Fire父事件基于WPF中的子控件事件

时间:2011-09-22 13:15:22

标签: wpf events user-controls

我有一个包含按钮的用户控件,如下所示

<UserControl x:Class="MyNamespace.myuseercontrol>
<Button Name="uxRemove" Grid.Row="2" Grid.Column="5" VerticalAlignment="Center"    
        HorizontalAlignment="Right" Width="70" Content="Remove"
        Click="uxRemove_Click"/> 
</UserControl>

主窗口如下

<Window>
<stackpanel>
    <local:MyUserControl x:Name="uxPanel1" />
</stackpanel>
</Window>

要求:

  1. 我想在usercontrl触发事件uxRemove_Click时在父窗口上触发一个事件。
  2. 我想将属性Isenabled添加到stackpanel“Usercontrol容器”,该容器将基于My usercontrol.IsEnabled属性。

1 个答案:

答案 0 :(得分:2)

对于您正在做的事情,MDI风格的解决方案可能有点过于复杂。

example of raising events from child controls to a parent window here

这是基本要点:

  • 声明自定义事件类型和注册处理程序的方法
  • 在您需要的任何地方举起儿童控件中的事件
  • 在父窗口上有一个侦听事件的处理程序

这比实现MDI样式的WPF应用程序更简单。