我有一個WPF應用程序,包含大量的組成用戶界面的文本框和組合框。我有一個「保存」按鈕,當任何文本框或組合框內容發生更改時,我想將其變爲紅色。是否有單個事件可以處理,因此我無需編寫當我的任何UI元素在WPF/C#中發生更改時,是否有任何事件觸發?
btnSave.Foreground = Brushes.Red
for _TextChanged event for every textbox?
我有一個WPF應用程序,包含大量的組成用戶界面的文本框和組合框。我有一個「保存」按鈕,當任何文本框或組合框內容發生更改時,我想將其變爲紅色。是否有單個事件可以處理,因此我無需編寫當我的任何UI元素在WPF/C#中發生更改時,是否有任何事件觸發?
btnSave.Foreground = Brushes.Red
for _TextChanged event for every textbox?
您可以通過循環顯示錶單的子項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"
和"Attached events"
的用法。這裏有一些參考文獻:
此鏈接有你需要的。 http://msdn.microsoft.com/en-us/library/ms742806.aspx
http://www.wpfmentor.com/2008/11/understand-bubbling-and-tunnelling-in-5.html
乾杯