2017-12-18 228 views
0

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

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

<TextBox Name="SpiralAngleTextBox" 
       Grid.Column="1" Grid.Row="4" 
       Margin="5,5,5,5" SelectedText="0"/> 

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

+0

使用绑定。你会立即得到所需的功能 – ASh

+0

的任何例子?我可以找到的所有示例都使用MVVM,而我没有使用任何类型的东西。 –

+0

你可以调用文本框的LostFocus事件,并使用“TextBoxName.Text”获得内容,并使用你的目的的内容.... –

回答

0

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

<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; 
    }