c# - son - signos de puntuacion
Enlazar cuadro de texto para flotar valor. No se puede ingresar el punto/coma (3)
Cuando intento ingresar un DOT o un COMMA en un cuadro de texto, por ejemplo, 1.02
o 83,33
el cuadro de texto me impide ingresar dicho valor (y la entrada se vuelve roja). El cuadro de texto está enlazado a una propiedad flotante. ¿Por qué?
He enlazado un cuadro de texto a un Power
de propiedad flotante de una clase que implementa INotifyPropertyChanged
.
private float _power;
public float Power
{
get { return _power; }
set
{
_power = value;
OnPropertyChanged("Power");
}
}
En xaml
<TextBox Name="txtPower" Height="23" TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
No tengo ninguna validación personalizada en este momento.
También probé decimal pero tampoco funciona. Para la cuerda todo funciona bien.
Intente agregar una definición StringFormat al enlace. Al igual que:
<TextBox Name="txtPower" Height="23"
TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,StringFormat=N2}"></TextBox>
Si tiene .NET 4.5 o más reciente, intente
System.Windows.FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false;
Ver el blog de Sebastian Lux .
para solucionar problemas de puntos y comas en el cuadro de texto que se enlaza a decimal o flotante
1- UpdateSourceTrigger = LostFocus
2- add string format StringFormat={}{0:#.##} to escape unneeded zeros
<TextBox Name="txtPower" Height="23"
TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay,
UpdateSourceTrigger=LostFocus ,StringFormat={}{0:#.##}}"></TextBox>