我正在使用 VS2010 和 Silverlight 5。
我有一个单一的 Silverlight 项目,它声明了一个类(学生)和一个带有绑定到学生属性的文本框的视图。
如果输入的年龄 < 100 或 < 0,Student 类会抛出异常,然后在绑定到 Age 的文本框中,我标记:ValidatesOnException = True。
我使用 VS2010 运行该应用程序,并且异常没有被“绑定引擎”拦截,它只是冒泡给用户。
但如果我用 VS2012 运行它,一切都会好起来的。如果输入错误,文本框会以红色突出显示并显示错误
我希望能够使用 VS2010。
难道是我在同一台机器上安装了 VS2010 和 VS2012 的事实。我已经安装了一段时间,没有任何其他问题。
这是我的学生课:
public class Student {
private string _name;
public string Name {
get { return _name; }
set { _name = value; }
}
private int _age;
public int Age {
get { return _age; }
set {
if (value > 100 || value < 0) {
throw new Exception("Please enter an age between 0 and 100");
}
_age = value;
}
}
}
这是视图:
<Grid x:Name="LayoutRoot"
Background="White">
<TextBlock Height="23"
HorizontalAlignment="Left"
Margin="66,48,0,0"
Name="textBlock1"
Text="Name"
VerticalAlignment="Top" />
<TextBox Name="txtName"
Text="{Binding Name, Mode=TwoWay, ValidatesOnExceptions=True}"
Height="23"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="185"
Margin="121,44,0,0" />
<TextBlock Height="23"
HorizontalAlignment="Left"
Margin="78,77,0,0"
Name="textBlock2"
Text="Age"
VerticalAlignment="Top" />
<TextBox Name="txtAge"
Text="{Binding Age, Mode=TwoWay, ValidatesOnExceptions=True}"
Height="23"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Width="120"
Margin="121,73,0,0" />
</Grid>
会是什么呢?