我有一个WPF应用程序,其中包含许多组成UI的文本框和组合框。我有一个“保存”按钮,当这些文本框或组合框内容发生任何变化时,我想要变成红色。是否有一个我可以处理的事件,所以我不必写
btnSave.Foreground = Brushes.Red
每个文本框的_TextChanged事件?
答案 0 :(得分:3)
您可以循环遍历表单的子Controls
,遍历表单上的所有文本框,并相应地将事件绑定到一起。
//-- This is a hair on the pseudo side, ChangeSavebuttonToRedHandler is an event
//-- handler for your foreground change.. You can also use a lambda or whatever
//-- you'd like.
foreach(var loChild in this.Controls)
{
if(loChild is TextBox)
{
loChild.TextChanged += ChangeSaveButtonToRedHandler;
}
}
答案 1 :(得分:1)
有很多方法可以做这样的事情。最好的方法是了解"Bubbling and Tunneling in WPF"
和"Attached events"
的用法。以下是一些参考文献:
此链接拥有您所需要的一切。 http://msdn.microsoft.com/en-us/library/ms742806.aspx
http://www.wpfmentor.com/2008/11/understand-bubbling-and-tunnelling-in-5.html
干杯
答案 2 :(得分:1)