1

我正在使用 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>

会是什么呢?

4

0 回答 0