我不得不使用第三方控件來屏蔽文本輸入。對於第三方控制的XAML看起來像這樣
<thirdParty:MaskInput Value={Binding Path=Phone, UpdateSourceTrigger=LostFocus} x:Name=Phone LostFocus=Phone_LostFocus />
哪個會先觸發WPF控件中的綁定觸發器或事件
現在在我後面的代碼我有這樣的事件處理程序的代碼 -
public void Phone_LostFocus(object sender, RoutedEventArgs e) { ((MaskInput)sender).Value = ((MaskInput)e.OriginalSource).Text; }
當我執行這個代碼有時Value屬性被設置並且有時它不被設置爲文本。
我懷疑綁定的UpdateSourceTrigger。我應該把它改成別的東西嗎? UpdateSourceTrigger和事件本身之間的情況下的順序是什麼?這個訂單是否可預測,即它是否總是按照這個順序發生?
我不知道你想在你的事件處理程序代碼,這樣做,因爲我沒有看到你的MaskInput Text屬性是什麼,但如果你想你的價值屬性被不斷更新,你可以改變UpdateSourceTrigger到的PropertyChanged,而不是LostFocus – Nitin
Nit,我正在做這一切,因爲thirdParty控件有缺陷。我無法放棄控制,仍然需要解決問題。我猜這個控件是從它的heirarchy中的TextBox派生的,因此它具有Value和Text屬性。 –