C# WPF UserControl子组件事件处理程序
我有一个UserControl,它包含一个按钮(或任何其他对象)C# WPF UserControl子组件事件处理程序,c#,wpf,xaml,events,C#,Wpf,Xaml,Events,我有一个UserControl,它包含一个按钮(或任何其他对象) 我想访问该按钮(或任何对象)的单击事件或包含UserControl的父级的任何事件 <Window x:Class="StackOverFlowQuestion.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com
我想访问该按钮(或任何对象)的单击事件或包含UserControl的父级的任何事件
<Window x:Class="StackOverFlowQuestion.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:StackOverFlowQuestion"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<local:UserControlButton/>
</Grid>
</Window>
谢谢。很简单。只需将一个公共事件放置到
UserControl
(代码隐藏),因为它可以从UserControl外部访问,并从您的按钮转发Click事件
public partial class UserControlButton : UserControl
{
public event RoutedEventHandler ButtonClick;
private void UsrCtlButton_Click(object sender, RoutedEventArgs e)
{
ButtonClick?.Invoke(sender, e);
}
}
用户控件的XAML
:
<Button x:Name="Button1" Content="Click me for testing" Click="UsrCtlButton_Click"/>
这很容易。只需将一个公共事件放置到
UserControl
(代码隐藏),因为它可以从UserControl外部访问,并从您的按钮转发Click事件
public partial class UserControlButton : UserControl
{
public event RoutedEventHandler ButtonClick;
private void UsrCtlButton_Click(object sender, RoutedEventArgs e)
{
ButtonClick?.Invoke(sender, e);
}
}
用户控件的XAML
:
<Button x:Name="Button1" Content="Click me for testing" Click="UsrCtlButton_Click"/>
如何以及从何处访问?XAML?或者代码?访问它可能意味着从xaml代码中添加事件处理程序。无法将事件处理程序连接到窗口的xaml标记中的
用户控件中定义的按钮。然后,您需要在UserControl
类中定义一个事件。这正是我所做的,非常感谢。如何以及从何处访问它?XAML?或者代码?访问它可能意味着从xaml代码中添加事件处理程序。无法将事件处理程序连接到窗口的xaml标记中的用户控件中定义的按钮。然后,您需要在UserControl
类中定义一个事件。这正是我所做的,非常感谢。干杯,伙计,这就是我一直在寻找的。干杯,伙计,这就是我一直在寻找的。