0

我有一个文本框绑定到 viewodel 中的双属性的视图。当用户在文本框中输入无效数据时,WPF 或 MVVM 或任何足以向用户显示视觉指示(控件周围的红色框)的东西。在这种情况下,无效数据表示无法转换为双精度并与视图模型属性同步的数据。

我想要做的是检测视图控件何时具有导致它们不再绑定的数据。我知道我可以通过后面的代码限制用户可以输入的内容,但我不确定我是否想这样做。

我也知道我可以创建一个控件数据验证方法来验证所有控件是否属于所需的数据类型,但我宁愿不这样做,除非我必须这样做。

是否有一种智能且简单的方法来告诉 xaml 禁止会导致绑定问题的用户输入?

什么是文本框的绑定属性,其状态会导致控件周围出现红色框,或者更好的是如何获取文本框的绑定失败状态?

我是否可以对整个视图/窗口/布局/面板进行全面调用,以递归检查所有绑定以确保它们的数据与视图模型同步并因此有效,或者某些对象不同步且无效,或者由于某些绑定数据的无效性而没有发生绑定?

刚才我有个想法。如果视图模型是为视图构建的,我应该制作诸如高度和宽度之类的属性字符串吗?为了有效,它们必须是双精度值,但这些是用户可以键入的值。这将允许我以与验证对象状态的其余部分相同的方式验证属性。

除了我最后的启示,有人对我这里的问题有一些热门提示吗?

谢谢高手。

4

2 回答 2

0

我对我的属性和 IDataErrorInfo 使用字符串类型来检查输入。好消息是没有绑定异常,并且视图和视图模型始终保持同步。

不过,您也可以为控件使用 maskedbehaviour,因此用户只需输入不会引发绑定错误的值。

于 2012-04-11T08:26:00.187 回答
0

尝试使用验证规则。然后,如果值是字符串或数字,则在您的验证类中执行您的条件。

于 2013-09-09T08:55:05.477 回答