Ich habe eine TextBox
in einem WPF-Fenster an eine Abhängigkeitseigenschaft des Fensters vom Typ double
gebunden (siehe unten). Jedes Mal, wenn der Benutzer in der TextBox
wennTextBox mit CurrencyFormat und PropertyChanged Trigger akzeptiert keinen Text rechts
- Die
TextBox
leer ist, oder - der gesamte Text ausgewählt ist,
der eingegebene Text nicht korrekt akzeptiert. Zum Beispiel: Wenn ich in einem dieser Szenarien eine '5' eintippe, lautet der resultierende Text "$ 5,00", aber der Caret befindet sich vor der '5' nach dem '$'. Wenn ich versuche "52.1" einzugeben, bekomme ich "$ 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>
Wenn ich das UpdateSourceTrigger-Attribut entferne, wird es korrekt eingegeben, aber das Währungsformat wird nicht beibehalten.
Irgendwelche Ideen?
einen Konverter nicht bearbeitet wird. TextBox befasst sich eigentlich nur mit Text und wenn Sie an etwas anderes als Text binden, müssen Sie einige Annahmen treffen (Vermutungen). http://stackoverflow.com/questions/9050054/cannot-assign-a-null-value-to-a-nullable-int32-via-binding – Paparazzi