将WPF应用程序中的Button个绑定到VIEWMODEL类中的Command个非常容易.我想为TextBox实现类似的绑定.

我有一个TextBox,我需要将它绑定到Command,当我在TextBox处于焦点时按enter时会触发Command.目前,我正在为KeyUp事件使用以下处理程序,但它看起来很难看… 我不能把它放在我的VIEWMODEL班.

private void TextBox_KeyUp(object sender, KeyEventArgs e)
{
    if (e.Key == System.Windows.Input.Key.Enter)
    {
        // your event handler here
        e.Handled = true;
        MessageBox.Show("Enter Key is pressed!");
    }
}

有更好的方法吗?

推荐答案

雅利安人,并不是每个WPF对象都支持命令.因此,如果您不想这样做,则需要从后面的代码调用视图模型(稍微耦合),或者使用一些MVVM消息传递实现将其解耦.有关示例,请参见MVVM Light Messaging toolkit.或者像这样简单地使用触发器:

<TextBox>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="KeyUp">
            <i:InvokeDataCommand Command="{Binding MyCommand}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</TextBox>

.net相关问答推荐

[x.x.x,)在Packages.lock.json依赖项中是什么意思?

SLN配置文件:映射问题

如果只有一个 : 存在于字符串中,则提取冒号后的内容

为什么这个多态 C# 代码会打印它的功能?

整个命名空间的SuppressMessage

SqlDateTime.MinValue != DateTime.MinValue,为什么?

如何以编程方式 Select ListView 中的项目?

Select 文件夹对话框 WPF

参数命名:文件名还是文件名?

如何在我的 C# 程序的面板中运行另一个应用程序?

System.Speech.Recognition 和 Microsoft.Speech.Recognition 有什么区别?

有没有办法从方法返回匿名类型?

如何过滤具有多个条件的 Directory.EnumerateFiles?

MailMessage,Sender 和 From 属性的区别

是否可以判断对象是否已附加到实体框架中的数据上下文?

IronPython 与 Python .NET

忽略 LINQ to XML 中的命名空间

C# 应用程序中的全局键盘捕获

在 WPF 中设置 Tab 键顺序

您可以将 Microsoft Entity Framework 与 Oracle 一起使用吗?