我有一个表单,其中包含一些文本框,通过caliburn的自动绑定绑定到VM中的属性。但是,如果你在文本框中键入一些对绑定没有意义的东西,Caliburn就不会对它做任何事情(或者我认为是这样)。
我想知道Caliburn是否有办法在某种程度上限制输入绑定。例如:
我有一个绑定到VM中TimeSpan的TextBox。 写00:00:10工作正常,并将TimeSpan设置为10秒。
如果我写00:00:-10没有任何反应,绑定仍然保留在之前正确绑定的值。
答案 0 :(得分:2)
您的问题与Caliburn.Micro无关,它只是帮助您使用数据绑定将视图连接到视图模型。您需要使用的是验证数据绑定。您可以阅读有关data binding in Silverlight的更多信息,特别是数据验证部分是您应该学习的内容。
Caliburn.Micro使用约定自动创建绑定。但是,您可能必须在XAML中自定义这些绑定以获得所需的验证行为。
如果您编写00:00:-10
,则验证失败,因为绑定引擎的类型转换器会引发异常。如果TextBox
的绑定表达式将ValidatesOnExceptions属性值设置为true,您将获得该值无效的视觉反馈。由于输入的值无法转换为TimeSpan
,因此不会对视图模型进行任何更改。