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