2011-07-25 5 views
0

WPFでは、複数のテキストボックス内のすべてのコンテンツを一度に設定するコマンドを使用しようとしています。次のコードでは、トグルボタンでスコープを持つテキストボックスを実行するためのコマンドを取得できますが、同時に両方のコマンドを実行することはできません。WPF VB.net - 同じコマンドに対して複数のCommandBindingを実行できますか?

<StackPanel> 
    <ToggleButton FocusManager.IsFocusScope="True" Command="EditingCommands.ToggleBold" Width="20" Height="20"></ToggleButton> 
    <RichTextBox Width="200" Height="200"> 
     <RichTextBox.CommandBindings> 
      <CommandBinding 
         Command="EditingCommands.ToggleBold" 
         Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/> 
     </RichTextBox.CommandBindings> 
    </RichTextBox> 
    <RichTextBox Width="200" Height="200"> 
     <RichTextBox.CommandBindings> 
      <CommandBinding 
         Command="EditingCommands.ToggleBold" 
         Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/> 
     </RichTextBox.CommandBindings> 
    </RichTextBox> 
</StackPanel> 

Private Sub CommandBinding_Executed(ByVal sender As System.Object, ByVal e As System.Windows.Input.ExecutedRoutedEventArgs) 
    DirectCast(sender, RichTextBox).SelectAll() 
    DirectCast(sender, RichTextBox).Selection.ApplyPropertyValue(RichTextBox.FontWeightProperty, "Bold") 
    e.Handled = False 
End Sub 

Private Sub CommandBinding_CanExecute(ByVal sender As System.Object, ByVal e As System.Windows.Input.CanExecuteRoutedEventArgs) 
    e.CanExecute = True 
End Sub 

私はコマンドで可能なことをしようとしていますか?私は、click_eventのようなものの中にあるコード内の各テキストボックスへの直接の参照を必要としないことを好みます。

ありがとうございました!

答えて

0

親コンテナを参照し、指定したタイプの子を調べ、必要なタイプであればその子オブジェクトに対してアクションを実行します。

何か

foreach(var child in MyRootPanel.Children) 
{ 
    if (child is RichTextBox) 
    { 
     // Process whatever 
    } 
} 
+0

ように私はそのことを考えていませんでした。いい案! –

関連する問題