0

我有一个表单,其中包含一些文本框,这些文本框通过 caliburn 的自动绑定绑定到它们在 VM 中的属性。但是,如果您在文本框中键入对绑定 Caliburn 没有意义的内容,则根本不会对其执行任何操作(或者我认为它是)。

我想知道 Caliburn 是否有办法以某种方式限制其绑定的输入。例如:

我有一个绑定到 VM 中 TimeSpan 的 TextBox。写入 00:00:10 工作正常,并将 TimeSpan 设置为 10 秒。

如果我写 00:00:-10 没有任何反应,并且绑定保持在之前正确绑定的值。

4

1 回答 1

2

您的问题与 Caliburn.Micro 无关,它只是帮助您使用数据绑定将视图连接到视图模型。您需要使用的是数据绑定的验证。您可以阅读有关Silverlight 中数据绑定的更多信息,尤其是数据验证部分是您应该学习的内容。

Caliburn.Micro 使用约定自动创建绑定。但是,您可能必须在 XAML 中自定义这些绑定才能获得所需的验证行为。

在您编写00:00:-10验证失败的情况下,因为绑定引擎的类型转换器引发了异常。如果绑定表达式TextBoxValidatesOnExceptions属性值设置为 true,您将获得值无效的视觉反馈。并且由于输入的值无法转换为TimeSpan未更改视图模型。

于 2012-07-03T08:41:07.107 回答