2010-06-14 126 views
2

我使用的是來自WPF工具包的MaskedTextbox for .NET 3.5 SP1。我在WPF頁面上有一個MaskedTextbox,它從SQL Server數據庫中填充得很好,但是當我嘗試編輯這個值時什麼都沒有發生。我可以選擇任何東西,但是鍵入它,或者按下刪除鍵或其他任何我可以做的事情,都不會對那裏的價值產生任何影響。我想用它來允許用戶輸入或編輯時間值,如下所示:上午9:30將顯示爲「09:30 AM」。下面是我所指定的XAML:使用MaskedTextbox輸入時間值時遇到問題

<cusControls:MaskedTextBox x:Name="mtbTime" 
     Mask="90:00 >LL" Margin="5,0,0,0" 
     Text="{Binding ElementName=ThisDateTime,Path=TimePart,Converter={StaticResource NullableTimeToUnderscoreConverter}}" /> 

(這是我在做所謂的「ThisDateTime」用戶控制的一部分。)我在做什麼錯了,我怎麼解決?

+0

他在wpf.codeplex.com上的WPFToolkit項目沒有「MaskedTextbox」類。你使用什麼「WPF工具包」?請編輯該問題以澄清此問題。 – 2010-06-15 22:42:48

+0

對不起,你是對的。我使用的是Matt MacDonald在Apress的書中「C#2008中的臨WPF」中指定的MaskedTextbox控件。 – Rod 2010-06-18 16:37:24

回答

1

我還沒有看到文本框的來源,但碰到類似的東西我自己。

  • 難道這是你的部分輸入的文本或者不匹配掩碼或者不匹配轉換器的問題嗎?
  • 綁定上的UpdateSourceTrigger是否設置爲UpdateProperty,或者在代碼隱藏中發生了類似的情況?
+0

我問了一個微軟的技術人員,你是對的,它確實與部分輸入的文本不匹配掩碼有關。 但是,您使用UpdateProperty描述的UpdateSourceTrigger是什麼? (我對WPF來說還不是很瞭解它的所有內容。) – Rod 2010-07-06 14:27:25

+0

UpdateSourceTrigger是一個值,您可以設置該值來告訴文本框何時更新綁定到的源。通常它只會在焦點移動到同一組中的另一個元素時更新源代碼(如果因爲丟失了文本而點擊了不同的選項卡,真的很煩人)。將它設置爲UpdateProperty意味着只要文本中的文本發生更改,它就會更新源代碼文本框。 – Lunivore 2010-07-07 08:45:19