ValidatesOnExceptions在Silverlight VS2010中不起作用

时间:2013-03-15 16:06:39

标签: silverlight validation data-binding

我正在使用VS2010和Silverlight 5。

我有一个sinple Silverlight项目,它声明了一个类(Student)和一个带有绑定到Student属性的文本框的视图。

如果输入的年龄是<,则Student类会抛出异常。 100或者< 0,然后在绑定到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>

它可能是什么?

0 个答案:

没有答案