我有一個TextBox
在WPF窗口綁定到類型double
(見下文)的窗口的依賴項屬性。每當在TextBox
用戶類型時具有CurrencyFormat和PropertyChanged觸發器的TextBox不接受文本權
- 的
TextBox
是空的,或 - 所有的文字被選中,
鍵入的文本被錯誤地接受。例如:如果在這兩種情況下都輸入'5',則結果文本爲「$ 5.00」,但插入符號位於「$」之後的「5」之前。如果我嘗試輸入「52.1」,我會得到「$ 2.15.00」。
<Window x:Class="WPF.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="154" Width="240" Name="ThisWindow"
Background="{StaticResource {x:Static SystemColors.AppWorkspaceBrushKey}}">
<Grid>
<TextBox Text="{Binding ElementName=ThisWindow,
Path=Amount,
StringFormat={}{0:c},
UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Center"
HorizontalAlignment="Center"
MinWidth="100" />
</Grid>
</Window>
如果我刪除UpdateSourceTrigger屬性,它的類型正確,但不保持貨幣格式。
任何想法?
使用轉換器的格式。 TextBox實際上只處理文本,當你綁定到文本以外的東西時,它必須做出一些假設(猜測)。 http://stackoverflow.com/questions/9050054/cannot-assign-a-null-value-to-a-nullable-int32-via-binding – Paparazzi 2012-03-28 15:29:16