我有一个TextBox
,其中包含' OK'它下面的按钮。 ' OK'按钮在我的RunPanel
静态类中运行方法,如下所示:RunPanel.RunOK();
。
我想在TextBox
中按输入来执行方法RunPanel.RunOK()
。
我怎么能在XAML中做到这一点?
我遇到的答案似乎令人困惑,所以我想知道是否有人可以帮助我。
答案 0 :(得分:3)
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语句中,如果在文本框中按下回车键,它将触发。
答案 1 :(得分:0)
KeyBinding可能是你最好的镜头。
例如:
<Window>
<Window.InputBindings>
<KeyBinding Command="{Binding SomeCommand, RelativeSource={RelativeSource Self}}" Modifiers="Control" Key="F5"></KeyBinding>
</Window.InputBindings>
</Window>
答案 2 :(得分:0)
我怎么能在XAML中做到这一点?
XAML是一种标记语言,您无法真正调用其中的方法。您可以使用ObjectDataProvider绑定到方法,如下所述:http://www.devcurry.com/2011/03/wpf-4-using-objectdataprovider-for.html
但是如果你想在点击按钮时做某事,你应该绑定到视图模型的命令,并在该命令的Execute方法中调用静态方法。
在XAML中尝试一切或尽可能多只是因为你可以而且只是为了消除代码通常被认为是一种反模式。
MVVM不是要消除代码,它主要是关注问题的分离,而C#是一种比XAML更具表现力和更简洁的语言。因此,您应该使用C#语言等编程实现应用程序的行为,并使用XAML定义UI的可视化表示和布局。