如何将事件从UserControl传递给它的一个子控件?

时间:2018-12-15 06:20:43

标签: c# wpf user-controls eventhandler

假设您有一个名为UserControl的{​​{1}},它由一个ActionableListBox组成,其中包含一个DockPanel和一个Button

设置ListBox以在包装的ActionableListBox上公开属性很简单。只需在ListBox上定义属性,然后将getter / setter委托给内部ActionableListBox。很简单。

但是我找不到的是如何设置ListBox以“通过”诸如ActionableListBox等事件,以便可以在XAML中使用它。您不能像属性那样“向下删除”,因为事件处理程序只能出现在赋值运算符的左侧。

因此,除了被迫将其转换为完整的SelectionChanged外,还有什么方法可以“传递”事件,以便我可以在XAML中使用此CustomControl

1 个答案:

答案 0 :(得分:0)

实际上很简单。为ActionableListBox定义SelectionChanged事件。对于ListBox的{​​{1}},在SelectionChanged中创建一个事件处理程序,然后触发其自己的ActionableListBox

SelectionChanged