WPF VB.NET - можно ли выполнять несколько командных записей для одной и той же команды?
-
26-10-2019 - |
Вопрос
В WPF я пытаюсь использовать команды, чтобы установить все контент в нескольких текстовых полетах одновременно. Следующий код способен получить команду на кнопке Toggle, чтобы выполнить, для которой когда -либо есть объем, но я не могу заставить команду выполнять оба в то же время.
<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
То, что я пытаюсь сделать возможным с командами? Я бы предпочел, чтобы не приходилось прямым ссылкам на каждый текстовый поток в коде, стоящем за chlick_event или что -то вроде.
Спасибо за помощь!
Решение
Я бы ссылался на родительский контейнер и просмотрел его детей для указанного типа, а затем выполните свое действие на детском объекте, при условии, что он хотите.
Что-то типа
foreach(var child in MyRootPanel.Children)
{
if (child is RichTextBox)
{
// Process whatever
}
}
Не связан с StackOverflow