2017-12-18 117 views
0

私はWPFの初心者です。私のメインウィンドウでは、複数のTextBoxがあるので、ユーザーがこれらのテキストボックスに異なる入力を入力するたびに、その変更をコード内に実装したいと思います。テキストボックスのフォーカス例えばWPF TextBox lostFocusイベントトリガー

、私のテキストボックスのようになります。

<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"/> 

とxaml.csで

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

のEventHandlerを書くことができます。

  <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

は、あなたがする必要があるのはTextBox.Text

MYPROPERTYは、コードビハインドでいくつかのプロパティです
<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