1

我有一个简单的视图和视图模型,后者实现了 IDdataErrorInfo 和 IValidationExceptionHandler。该视图包含一个组合框,其 ItemsSource 绑定到一个集合, SelectedValue 绑定到一个属性 - 验证数据错误和异常;属性更新已更改并通知源已更新。

我正在使用数据注释,并且该属性是用必需的以及 Range 属性“装饰”的,我会在执行视图时期望组合框显示错误装饰器和我为必需属性提供的消息。但是,将鼠标悬停在装饰器上时,我注意到消息是“无法转换值”。

如果我发现没有选择任何值,我是否必须检查属性的 getter 中选择的值并返回带有我的消息的 ValidationResult?我认为只使用Required 属性就可以解决问题,但这似乎不适用于组合框?

非常感谢任何帮助。

4

1 回答 1

2

如果组合框中没有代表 SelectedValue 代表的类型的默认值的项目,通常会发生这种情况。

假设您绑定的选定值属性是字符串,那么应该有一个项目(在 ItemsSource 中)表示 string.empty 的默认值。

因此(可能)错误是无法转换值“”

让我知道这是否有帮助。

于 2011-07-30T15:12:03.540 回答