1

我的用户界面很简单。在 Silverlight 5.0 应用程序中,我使用 MVVM,我让用户添加许多文本框,因为他想在 aObservableCollection<Model>和 a中添加Button

Model只有一个属性,它的数据类型是integer.

该模型的数据模板只是一个简单的文本框。

<TextBox Text="{Binding Number}" />

所以想法是,当所有文本框都没有任何错误时,启用该命令,但如果任何模型有错误,则应禁用该命令。

如何实施此验证?提前致谢。

4

1 回答 1

1

您可以简单地在适当的属性设置器中抛出异常:

public int Number
{
    get {//...}
    set {
           if(value >= 10)
             throw new Exception("Number should be less than 10");
           _number = number;
        }

}

你的绑定应该是:

<TextBox Text="{Binding Number, Mode="TwoWay" ValidateOnExceptions="True"}" />

FrameworkElement 具有BindingValidationErrorEvent,可用于实现启用/禁用命令逻辑。请记住为您的绑定设置NotifyOnValidationError为。True

ps另外,我建议您阅读有关INotifyDataErrorInfo

于 2012-11-14T06:03:28.610 回答