我有一个简单的视图和viewmodel,后者实现了IDdataErrorInfo和IValidationExceptionHandler。该视图包含一个组合框,其ItemsSource绑定到一个集合,其中SelectedValue绑定到一个属性 - 验证数据错误和异常;更新了属性更新并通知源更新。
我正在使用数据注释,该属性使用Required和Range属性进行“修饰”,我会在执行视图时期望组合框显示错误装配器以及我为必需提供的消息属性。但是,将鼠标悬停在装饰器上时,我注意到该消息是“值”“无法转换”。
我是否必须检查属性的getter中的选定值,如果我发现没有选择任何值,则返回带有我的消息的ValidationResult?我认为只使用Required属性就可以完成这个技巧,但这似乎不适用于组合框?
任何帮助都非常感激。
答案 0 :(得分:2)
如果组合框中没有表示SelectedValue所代表类型的默认值,则通常会发生这种情况。
假设绑定的选定值属性是字符串,则应该有一个项目(在ItemsSource中),它表示string.empty的默认值。
因此(可能)错误是值“”无法转换
如果有帮助,请告诉我。