【问题标题】:How to assign a shortcut to a button in MVVMLight如何为 MVVMLight 中的按钮分配快捷方式
【发布时间】:2018-10-28 09:07:12
【问题描述】:

如何在以下代码中将enter key 分配给on_Click 事件?

为了说明这一点,我想在按下回车键时触发 on_Click() 方法中的代码。

同样,我正在使用 MVVMLight 框架。

视图模型

namespace MyApp.ViewModel
{
    public class AppViewModel : ViewModelBase

    {
        public ICommand clickCommand { get; private set; }

        public AppViewModel()
        {
            clickCommand = new RelayCommand(() => on_Click());
        }

        private void on_Click()
        {      
            // button clicked     
        }
    }
}

XAML

<Button x:Name="myButton" 
        Content="Click Me" 
        HorizontalAlignment="right"
        Margin="0,84,72,0" 
        VerticalAlignment="Top" 
        Width="66" Height="25"
        Command="{Binding clickCommand}" Foreground="#FFF2F5FC" BorderBrush="{x:Null}">
    <Button.Background>
        <SolidColorBrush Color="#FF3DA5DB"/>
    </Button.Background>
</Button>

【问题讨论】:

  • 非常感谢,我最终使用了来自链接&lt;UserControl.InputBindings&gt; &lt;KeyBinding Gesture="Enter" Command="{Binding someCommand}"/&gt; &lt;/UserControl.InputBindings&gt;Nik's 解决方案

标签: wpf mvvm data-binding mvvm-light


【解决方案1】:

@shivani 分享的精彩链接。大多数方式都在那里。 您可以做的另一件事是设置按钮的IsDefault 属性。

有一个可用的内置功能,您可以将一个按钮设置为默认值,以便在按 Enter 键时执行该按钮的单击事件。

所以,你也可以使用 IsDefault。

<Button x:Name="myButton" 
        Content="Click Me" 
        HorizontalAlignment="right"
        Margin="0,84,72,0" 
        VerticalAlignment="Top" 
        Width="66" Height="25" IsDefault="True"
        Command="{Binding clickCommand}" Foreground="#FFF2F5FC" BorderBrush="{x:Null}">
<Button.Background>
    <SolidColorBrush Color="#FF3DA5DB"/>
</Button.Background>

【讨论】:

  • IsDefault="True" 工作。我唯一不喜欢这种方法的是按钮始终处于焦点状态(一直闪烁)。
  • @maulik kansara - 你知道在使用isDefault 时按钮始终处于焦点状态是否是正常行为吗?
  • 我最终使用了&lt;UserControl.InputBindings&gt; &lt;KeyBinding Gesture="Enter" Command="{Binding someCommand}"/&gt; &lt;/UserControl.InputBindings&gt;
猜你喜欢
  • 2015-04-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-17
  • 1970-01-01
  • 1970-01-01
  • 2011-03-15
相关资源
最近更新 更多