公开在另一个自定义控件的控件模板中定义的自定义控件事件

本文关键字:自定义控件 定义 事件 控件 另一个 | 更新日期: 2023-09-27 18:35:15

我要做的是公开自定义控件中包含的按钮的单击事件。此自定义控件的实例在另一个自定义控件的控件模板中声明。

例如,假设我有以下内容:

public class CustomTabPanel : Panel
{
    public Button newButton;
    //lots of other stuff
}

然后我有另一个这样的控件

public class CustomControl : Selector
{
    //stuff here
}

这个 CustomControl 类有一个在 generic.xaml 中定义的模板,该模板定义了 CustomTabPanel 的实例,如下所示(内容已被剥离)

<Style TargetType="{x:Type local:CustomControl}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type local:CustomControl}">
                    <local:CustomTabPanel IsItemsHost="True"/>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

然后,可以在 MainWindow.xaml 或任何位置创建此控件的实例。

我的问题是,假设控件是在那里定义的,我如何访问 MainWindow.xaml 中 CustomTabPanel 中按钮的 Click 事件?

我试图使这个解释尽可能简单,如果您需要更多实现细节,请询问。

非常感谢任何帮助!

克里斯

公开在另一个自定义控件的控件模板中定义的自定义控件事件

将其公开为 CustomControl 上的依赖项属性。将其连接到自定义控件代码文件中。这有点利用它。