解决方案 »
- ASP.NET 用户登录信息存储在静态类中合适吗?
- 和同学接的项目做不了了 要被起诉 救命
- C#用什么算法能把下列网页中的数据提取出来?
- DataGridView!求只能输入数字的限制的方法
- 高分悬赏:在企业库里,批更新中可以使用非存储过程的DBCommandWrapper吗
- 问一个C#语法问题(急)
- 求教高手,2000可以2005不行,System.Data.ReadOnlyException: 列为只读
- 用什么方法 把控件停靠再窗替右侧??
- C#中斜杠问题如何解决?
- byte数组转换成string的问题
- fileSystemWatcher怎么监控网络路径
- 利用 Owner 属性实现类似查找对话框的效果好像不灵?
这个绑定中,有没有UpdateSourceTrigger,现象是完全不一样的。
原因就在于:
1. 如果没有UpdateSourceTrigger,输什么都可以输,包括特殊字符,在此控件失去焦点的时候,.Net会去进行数据验证,如果发现输入不是有效的数据,比如上面的控件,就会去验证是不是有效的double型数据。如果不是,控件周围会出现红色框框,表示输入有误;
如果有UpdateSourceTrigger,那就不再是失去焦点再进行数据验证了,而是每输一个字符就验证一下,即TextChanged就会验证。
那么,“0.“转换为有效的double型数据,自然就是0,一输入小数点,就被转换转没了。所以你认为没输入。 具体解决方案,那就得自定义控件了。必要时,还得自定义数据验证方式。
<Button x:Name="Btn" Content="Button" HorizontalAlignment="Left" Margin="412,341,0,0" VerticalAlignment="Top" Width="75"/>
<TextBox HorizontalAlignment="Left" Height="23" Margin="397,416,0,0" TextWrapping="Wrap" Text="{Binding ElementName=Btn,Path=Width,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="120"/>
我刚试了,在vs2010没问题,但是到2012就不行了?
<TextBox HorizontalAlignment="Left" Height="23" Margin="397,416,0,0" TextWrapping="Wrap" Text="{Binding ElementName=Btn,Path=Width,UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Top" Width="120"/>
我刚试了,在vs2010没问题,但是到2012就不行了?
5楼说的有道理。于是我就查看了width的”从元数据“信息,发现其值必须大于0.0,任何转变不成double的都将视为System.Double.NaN类型。
那自定义的double依赖属性怎么在运行后输入值,难道只能输入整数
没有任何意义,反而会在输入过程中频繁的去更改属性值