【发布时间】:2012-10-04 06:30:13
【问题描述】:
我们在 Silverlight 应用程序中将 double 类型的属性绑定到文本框,在运行应用程序时更改文本框中的值时,光标移动到第一位,不允许用户输入值。
例如:如果用户尝试输入 99999.9 ,当我们尝试输入“.”时,在 99999 值之后,光标转到第一个位置,因此不允许用户输入 99999.9
当我们在文本框绑定属性中添加 UpdateSourceTrigger=PropertyChanged 时,就会出现这个问题。当我们删除此属性时,文本框将以正常方式工作。
请帮我解决这个问题。
谢谢
XAML:
<TextBox x:Name="txtUtil" IsReadOnly="{Binding IsReadable,Mode=TwoWay}" Text="{Binding Utilization,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, NotifyOnValidationError=True,ValidatesOnExceptions=True}" Width="70" Height="30"/>
C#
public double Utilization {
get { return utilization; }
set { utilization = value;
OnPropertyChanged("Utilization");
}
}
【问题讨论】:
-
可以改用
DependencyProperty来解决这个问题吗? -
除了引发
PropertyChanged事件之外,您的OnPropertyChanged方法中是否发生了任何事情?我无法使用提供的代码重现您描述的行为。 -
当我们在服务器中托管应用程序并从本地浏览链接时发生这种情况。
-
这方面有什么进展吗?你的 C# 代码在哪里?在
Page或UserControl中还是一个单独的类? -
我还没有找到任何解决方案。我遵循 MVVM 模式。因此 c# 代码位于视图模型文件(单独的类)中。
标签: silverlight silverlight-4.0