C# 如何通知UserControl另一个UserControl中发生了事件?
我有一个名为C# 如何通知UserControl另一个UserControl中发生了事件?,c#,wpf,events,xaml,event-handling,C#,Wpf,Events,Xaml,Event Handling,我有一个名为MainWindow的窗口,其中包含2个用户控件: SearchBox 及 当有人在SearchBox中键入内容时,我想相应地更改CustomerList 问题:要让客户列表知道TextChanged事件已在搜索框中执行,最好的方法是什么 现在我将SearchBox定义为: public class SearchSubmittedEventArgs : EventArgs { public string Term { get; set; } public Sear
MainWindow
的窗口,其中包含2个用户控件:
SearchBox
及
当有人在SearchBox中键入内容时,我想相应地更改CustomerList
问题:要让客户列表
知道TextChanged
事件已在搜索框中执行,最好的方法是什么
现在我将SearchBox
定义为:
public class SearchSubmittedEventArgs : EventArgs
{
public string Term { get; set; }
public SearchSubmittedEventArgs(string term)
{
Term = term;
}
}
public partial class SearchBox : UserControl
{
public event EventHandler<SearchSubmittedEventArgs> SearchSubmitted;
public SearchBox()
{
InitializeComponent();
}
private void SearchTextBox_TextChanged(object sender, TextChangedEventArgs e)
{
if (SearchSubmitted != null) SearchSubmitted.Invoke(this, new SearchSubmittedEventArgs(((TextBox)sender).Text));
}
}
我是否需要将事件从SearchSubmitted\u Invoked
传递到CustomerList
?有没有办法让我直接将它从搜索框
传递到客户列表
?我想您可以订阅活动……大致如下:
var search = new SearchBox();
var cust = new CustomerList();
search.SearchSubmitted += (s,e)=>{ cust.Update(e.Term); }
希望它能帮助您找到一种前进的方式……我想您可以订阅该活动……大致如下:
var search = new SearchBox();
var cust = new CustomerList();
search.SearchSubmitted += (s,e)=>{ cust.Update(e.Term); }
希望它能帮助您找到一种前进的方式…这些控件彼此靠近吗?然后,在它们内部烘焙一个新的用户控件可能是有意义的。外部用户控件是应该进行事件处理的控件。这些控件彼此靠近吗?然后,在它们内部烘焙一个新的用户控件可能是有意义的。外部用户控件是应该进行事件处理的控件
var search = new SearchBox();
var cust = new CustomerList();
search.SearchSubmitted += (s,e)=>{ cust.Update(e.Term); }