今天在解一個Bugs.... 就發現先前設計的一個Control有一些功能沒有想的很完善.......
於是又重新再思考了一下..... 發現自以為對WPF裡的Routed Event, 包括三種方式Tunnel, Bubble, 與Direct很熟悉
以為已經掌握到訣竅 但是因為之前的設計不完善 怎麼想就是想到一些漏洞
直到看到下面的兩種Add Handler的方法 我才恍然大悟.... 我未曾懂過....
也難怪WPF的Controls的Event機制並沒有照著普通的.Net的event or delegate方法 而是還有什麼AddHandler, ...etc之類的東西
就是為了要Support Routed Event
全文可以再參考一次msdn WPF Event
唔.... 沒有一直持續設計與思考 我還真的沒發現自己沒真正懂過.....
Design的路還很長.......
C# Method1-------------------------------------------------
void MakeButton()
{
Button b2 = new Button();
b2.AddHandler(Button.ClickEvent, new RoutedEventHandler(Onb2Click));
}
void Onb2Click(object sender, RoutedEventArgs e)
{
//logic to handle the Click event
}
The next example shows the C# operator syntax
(Microsoft Visual Basic .NET has slightly different operator syntax
because of its handling of indirection):
C# Method2-------------------------------------------------
void MakeButton2()
{
Button b2 = new Button();
b2.Click += new RoutedEventHandler(Onb2Click2);
}
void Onb2Click2(object sender, RoutedEventArgs e)
{
//logic to handle the Click event
}
Powered by ScribeFire.
沒有留言:
張貼留言