我有一个TextBox
与下面的“确定”按钮。 'OK'按钮运行我的RunPanel
静态类中的方法,如下所示:RunPanel.RunOK();
。C#WPF - 如何绑定文本框输入键按下方法?
我想按在TextBox
中输入也执行方法RunPanel.RunOK()
。
我该如何在XAML中做到这一点?
我遇到的答案似乎令人困惑,所以我想知道如果有人能帮助我。
我有一个TextBox
与下面的“确定”按钮。 'OK'按钮运行我的RunPanel
静态类中的方法,如下所示:RunPanel.RunOK();
。C#WPF - 如何绑定文本框输入键按下方法?
我想按在TextBox
中输入也执行方法RunPanel.RunOK()
。
我该如何在XAML中做到这一点?
我遇到的答案似乎令人困惑,所以我想知道如果有人能帮助我。
KeyBinding可能是你最好的选择。
例如:
<Window>
<Window.InputBindings>
<KeyBinding Command="{Binding SomeCommand, RelativeSource={RelativeSource Self}}" Modifiers="Control" Key="F5"></KeyBinding>
</Window.InputBindings>
</Window>
我只是好奇:这是绑定到'F5'键或'输入'键? – zx485
是的,我得到了那么远 - 但是我想知道如何用RunPanel.RunOK()替换'SomeCommand'并让它工作? –
@ zx485这是用于CTRL + F5,作为一个通用示例。我在那里使用Modifiers来显示如何使用键修饰符 –
private void textBox_KeyUp(object sender, KeyEventArgs e)
{
if(e.Key == Key.Return)
{
MessageBox.Show("Enter key pressed, put your method in here!");
}
}
这不会帮助你执行你在XAML规定的方法,但是具有文本订阅KeyUp事件,然后执行在其上输入的密钥检查解决您的问题。在这种情况下,您可以将RunPanel.RunOK()放入if语句中,如果在文本框内按下回车键,则会触发。
对不起。我编辑了答案,并试图澄清为什么它解决了这个问题。 –
完美。谢谢。愿您在本网站的未来光明灿烂,您可以贡献自己的力量,获得许多信誉积分和越来越多的访问权限,并利用社区提供的许多奖励,并查看评论链接:-)请记住,有徽章和帽子,并且当你付出很多会费时,不仅因为你得到了社区的尊重,而且获得了一些整洁的功能:-) – clearlight
我意识到了这个解决方案,但是我的目的是仅仅做这个XAML,因为我认为它更干净,但唉,我可以使用它。 –
我怎么能在XAML中做到这一点?
XAML是一个标记语言,你不能真的调用它的方法。您可以使用ObjectDataProvider绑定到一个方法,如下所述:http://www.devcurry.com/2011/03/wpf-4-using-objectdataprovider-for.html
但是,如果您想在点击按钮时执行某些操作,您应该绑定到视图模型的命令,并在Execute方法中调用您的静态方法这个命令。
尽量在XAML中尽可能地尝试所有内容,只是为了消除代码,通常被认为是反模式。
MVVM不是关于消除代码,它主要是关注问题的分离,而C#是一种比XAML更具表现力和更简洁的语言。因此,您应该使用C#语言等编程来实现应用程序的行为,并使用XAML来定义可视化表示和UI的布局。
什么是RunPanel?哪里写的?在代码后面?或某种模式?你正在关注任何模式(mvvm,prism ...)?你正在编写一个应用程序或控件? – WPFUser