VB の Hanlders
XAML にボタンクリックのイベントハンドラを付けるときは、XAML 自体に Click="" を書くのが普通なのだが、VB の場合は、もともとある Handlers によって、コードの挙動が変わる。
XAML の Button に名前がついていないときは、プロパティのイベントで「Button_Click」とすると、
Private Sub button1_Click(sender As Object, e As RoutedEventArgs)
End Sub
のように、C# と同じ出力がされて、XAMLに Click="button1_Click" 属性がつくのだが、
ボタン自体に、x:Name="button1" としておくと、
Private Sub button1_Click(sender As Object, e As RoutedEventArgs) Handles button1.Click
End Sub
のほうに、Handles が使われて、XAML には Click="" がつかない。
前者は、Command パターンで作られて、後者は ボタンコントロールのClickイベントに割り当てられるというパターンの違いがある。WithEvents があるかどうかの違いになるので、ソースコードレベルで使いまわしをするとき(コピーアンドペーストとか)は注意が必要。