例如,当我尝试在文本框中输入DOT或COMMA时,1.02或者83,33文本框阻止我输入这样的值(并且输入变为红色).文本框绑定到float属性.为什么?
我已将文本框绑定到Power实现类的float属性INotifyPropertyChanged.
private float _power;
public float Power
{
get { return _power; }
set
{
_power = value;
OnPropertyChanged("Power");
}
}
Run Code Online (Sandbox Code Playgroud)
在Xaml
<TextBox Name="txtPower" Height="23" TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
Run Code Online (Sandbox Code Playgroud)
我现在没有自定义验证.
也试过十进制但它也不起作用.对于字符串一切正常.
xme*_*eko 28
如果您使用的是.NET 4.5或更高版本,请尝试
System.Windows.FrameworkCompatibilityPreferences.KeepTextBoxDisplaySynchronizedWithTextProperty = false;
Run Code Online (Sandbox Code Playgroud)
请参阅Sebastian Lux的博客.
小智 23
尝试将StringFormat定义添加到绑定.像这样:
<TextBox Name="txtPower" Height="23"
TextWrapping="Wrap" Text="{Binding Path=Power, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged,StringFormat=N2}"></TextBox>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
22174 次 |
| 最近记录: |