WPF TextBox lostFocus事件触发器

我是WPF的新手, 在我的主窗口中我有多个TextBox,因此每当用户在这些文本框中输入不同的输入时,我想在后面的代码中实现这些更改,只要用户离开文本框的焦点。WPF TextBox lostFocus事件触发器

例如,我的textBox看起来是这样的:

<TextBox Name="SpiralAngleTextBox" 

Grid.Column="1" Grid.Row="4"

Margin="5,5,5,5" SelectedText="0"/>

我不希望做任何类型的输入验证。我想要的是在TextBox的内容更新后,只要TextBox离开焦点,就触发一些计算或调用函数。

回答:

你可以写一个事件处理程序

<TextBox Name="SpiralAngleTextBox" 

Grid.Column="1" Grid.Row="4"

Margin="5,5,5,5" SelectedText="0" LostFocus="SpiralAngleTextBox_LostFocus"/>

,并在xaml.cs

private void SpiralAngleTextBox_LostFocus(object sender, RoutedEventArgs e) 

{

foo();

}

如果你只是希望它当文本框内容发生变化,你可以尝试这样的东西做的东西:

  <TextBox Name="SpiralAngleTextBox" 

Grid.Column="1" Grid.Row="4"

Margin="5,5,5,5" SelectedText="0" LostFocus="SpiralAngleTextBox_LostFocus"

TextChanged="SpiralAngleTextBox_TextChanged"/>

and in the xaml.cs

 bool hasChanged; 

private void SpiralAngleTextBox_LostFocus(object sender, RoutedEventArgs e)

{

if(hasChanged)

foo();

hasChanged = false;

}

private void SpiralAngleTextBox_TextChanged(object sender, TextChangedEventArgs e)

{

hasChanged = true;

}

回答:

所有你需要做的是绑定到TextBox.Text

<TextBox Text="{Binding MyProperty}" /> 

myProperty的地方是在你的代码背后的一些特性。这是因为失去了重心TextBox.Text更新(UpdateSourceTrigger =引发LostFocus默认情况下。)您可以在这里了解更多:https://docs.microsoft.com/en-us/dotnet/framework/wpf/data/how-to-control-when-the-textbox-text-updates-the-source

以上是 WPF TextBox lostFocus事件触发器 的全部内容, 来源链接: utcz.com/qa/263152.html

回到顶部