【问题标题】:WPF VB.net - Can multiple CommandBindings be executed for the same command?WPF VB.net - 可以为同一命令执行多个 CommandBindings 吗?
【发布时间】:2011-10-12 17:23:31
【问题描述】:

在 WPF 中,我尝试使用命令一次设置多个文本框中的所有内容。以下代码能够在切换按钮上获得一个命令来执行哪个文本框具有范围,但我似乎无法同时执行这两个命令。

<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 或类似的代码中直接引用每个文本框。

感谢您的帮助!

【问题讨论】:

    标签: wpf vb.net routed-commands focusmanager


    【解决方案1】:

    我会引用父容器,并在其子对象中查找指定类型,然后对子对象执行您的操作,前提是它是您想要的类型。

    有点像

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

    【讨论】:

    • 我没想到。好主意!
    猜你喜欢
    • 1970-01-01
    • 2014-02-04
    • 2015-05-30
    • 2012-02-11
    • 2011-04-19
    • 2013-02-02
    • 2019-03-15
    • 1970-01-01
    • 2015-11-19
    相关资源
    最近更新 更多