2017-12-18 6 views
0

WPF를 처음 사용하는 경우 주 윈도우에서 여러 TextBox가 있기 때문에 사용자가이 입력란에 다른 입력을 입력 할 때마다 사용자가 텍스트 상자의 초점.WPF TextBox lostFocus 이벤트 트리거

예를 들어, 내 텍스트 상자는 다음과 같습니다 : I는 입력 검증의 어떤 종류의 일을 찾고 있지 않다

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

. 내가 원하는 것은 TextBox의 내용이 업데이트 된 후 TextBox가 포커스를 잃을 때마다 계산을 트리거하거나 함수를 호출하는 것입니다.

당신은 이벤트 핸들러를 작성할 수
+0

바인딩을 사용합니다. 당신은 즉시 필요한 기능을 얻을 것이다 – ASh

+0

어떤 예? 내가 MVVM을 사용할 수있는 모든 예가 있지만, 그런 종류의 것을 사용하지는 않습니다. –

+0

당신은 textbox의 lostfocus 이벤트를 호출하고 "TextBoxName.Text"를 사용하여 컨텐츠를 얻고 그 목적을 위해 컨텐츠를 사용할 수 있습니까? –

답변

0

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

private void SpiralAngleTextBox_LostFocus(object sender, RoutedEventArgs e) 
    { 
     foo(); 
    } 

방금 ​​텍스트 상자의 내용이 같은 것을 시도 할 수 변경 때 물건을 수행 할 경우 xaml.cs에서

:

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

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

은 당신이해야 할 모든 MyProperty는 코드 숨김에서 일부 속성 인 경우 TextBox.Text

<TextBox Text="{Binding 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