0
我有一個文本框綁定到一個屬性,當按下「輸入」在這個文本框中,一個方法被調用來更新一些其他變量。與鍵盤事件的數據綁定同步
如果我嘗試在此方法中使用有界屬性的值,它的值仍舊是舊值。
我需要退出文本框才能更新此屬性。
有一種方法可以避免這種情況?
我有一個文本框綁定到一個屬性,當按下「輸入」在這個文本框中,一個方法被調用來更新一些其他變量。與鍵盤事件的數據綁定同步
如果我嘗試在此方法中使用有界屬性的值,它的值仍舊是舊值。
我需要退出文本框才能更新此屬性。
有一種方法可以避免這種情況?
文本框綁定具有默認UpdateSourceTrigger的LostFocus
。如果每次文本更改時都要更新,只需使用PropertyChanged
即可。
例如。
<TextBox Text="{Binding TextContent, UpdateSourceTrigger=PropertyChanged}" />
如果你只是想以更新綁定被按下時進入,那麼你可以使用UpdateSourceTrigger=Explicit
和更新代碼的自動綁定後面。
如
BindingExpression binding = myTextBox.GetBindingExpression(TextBox.TextProperty);
binding.UpdateSource();
這是值得小心使用。有一種方法可以在調用我的方法之前更新所有綁定。 – Beetlejuice
正如我所說的,如果你想手動使用'UpdateSourceTrigger = Explicit'。我已經添加了一些示例代碼。 – GazTheDestroyer