[英]WPF TextBox lostFocus event trigger
我是WPF的新手,在mainWindow中,我有多個TextBox,因此每當用戶在這些文本框中輸入不同的輸入時,只要用戶離開文本框的焦點,我都希望在代碼中實現這些更改。
例如,我的textBox看起來像這樣:
<TextBox Name="SpiralAngleTextBox"
Grid.Column="1" Grid.Row="4"
Margin="5,5,5,5" SelectedText="0"/>
我不打算進行任何形式的輸入驗證。 我想要的是在TextBox的內容更新后,只要TextBox離開焦點,就觸發一些計算或調用一個函數。
您可以編寫一個EventHandler
<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"/>
並在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/zh-cn/dotnet/framework/wpf/data/how-to-控制時最文本框,文本更新-在源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.