繁体   English   中英

在WPF / C#中更改任何UI元素时,是否会触发任何事件?

[英]Is there any event that fires when any of my UI elements changes in WPF/C#?

我有一个WPF应用,其中包含许多组成UI的文本框和组合框。 我有一个“保存”按钮,只要这些文本框或组合框的内容发生更改,我都希望将其变为红色。 是否有一个我可以处理的事件,所以我不必写

btnSave.Foreground = Brushes.Red

每个文本框的_TextChanged事件?

您可以通过遍历表单的子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;
    }
}

有很多方法可以做到这一点。 最好的办法是了解"Bubbling and Tunneling in WPF"传输"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

干杯

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM