2017-12-18 505 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; 
    }