【问题标题】:Fire Parent event based upon child control event in WPF根据 WPF 中的子控件事件触发父事件
【发布时间】:2011-11-22 20:09:25
【问题描述】:

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

<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. 我想在用户控件触发 uxRemove_Click 事件时在父窗口上触发一个事件。
  2. 我想将基于 My usercontrol.IsEnabled 属性的 Isenabled 属性添加到堆栈面板“用户控件容器”中。

【问题讨论】:

  • 我找到了一个很好的解决方案Here。有没有更好的解决方案?

标签: wpf events user-controls


【解决方案1】:

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

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

这是基本要点:

  • 声明自定义事件类型和注册处理程序的方式
  • 在您需要的任何地方在子控件中引发事件
  • 在父窗口上有一个监听事件的处理程序

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    • 1970-01-01
    • 2020-04-16
    • 1970-01-01
    • 2012-12-07
    • 2018-10-27
    • 2011-01-22
    相关资源
    最近更新 更多