C# 如何向wpf中用户控件中的事件处理程序注册
我有一个代表员工的用户控件。xaml是一个字符图标的图像,并且有一个用于员工姓名的文本框。 在文本框中键入文本时,将引发Textchanged事件,并调用此事件处理程序:C# 如何向wpf中用户控件中的事件处理程序注册,c#,wpf,events,C#,Wpf,Events,我有一个代表员工的用户控件。xaml是一个字符图标的图像,并且有一个用于员工姓名的文本框。 在文本框中键入文本时,将引发Textchanged事件,并调用此事件处理程序: private void employeeNameChangedEventHandler(object sender, TextChangedEventArgs args) { _employeeName = employeeName.Text; } 是用户控件中的属性
private void employeeNameChangedEventHandler(object sender, TextChangedEventArgs args)
{
_employeeName = employeeName.Text;
}
是用户控件中的属性,因此可以检索名称:
public string EmployeeName
{
get { return _employeeName; }
}
在MainWindow.xaml.cs中,我想监听用户控件中的TextChanged eventhandler
我读过关于代表的书,对Unity的活动有一些经验,但不确定在wpf中实现这一点的最佳方式
Ta您可以使用客户路由事件。 在Usercontrol中,您需要添加路由事件,如下所示:
public static readonly RoutedEvent NameChangedEvent = EventManager.RegisterRoutedEvent
("NameChanged", RoutingStrategy.Bubble, typeof(EventHandler<RoutedEventArgs>), typeof(UserControl1));
public event RoutedEventHandler NameChanged
{
add { this.AddHandler(NameChangedEvent, value); }
remove { this.RemoveHandler(NameChangedEvent, value); }
}
现在,您只需要添加订阅您的客户路由事件,在这里您需要您的用户控件,因为您使用的是textchanged
<local:UserControl1 x:Name="uc" NameChanged="NameChanged"/>
我不明白你想要什么。如果要将绑定与dependency属性一起使用,请在用户控件中创建dependency属性。如果要在主窗口代码中访问用户控件,请为用户控件指定一个名称,并通过其名称.me.调用用户控件。。谢谢!我完全明白了,但你能解释一下线路名称的变化吗,路由策略。泡泡,芬坦德勒类型,用户控制类型1正在做什么?
<local:UserControl1 x:Name="uc" NameChanged="NameChanged"/>
private void NameChanged(object sender, RoutedEventArgs e)
{
//when you input one character in you usercontrol, you will get here
}