Silverlight Toolkit TimePicker控件在验证错误时不显示错误消息

时间:2010-05-27 04:00:13

标签: silverlight

我正在使用带有一些TimePicker控件和一些TextBox的Silverlight应用程序。 像

这样的XAML代码
  <toolkit:TimePicker x:Name="time" Width="100" HorizontalAlignment="Left" Value="{Binding FromDatetime, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}"/>
  <Button HorizontalAlignment="Left" Content="Button" Height="23" x:Name="button1" Width="75" Click="button1_Click" />
  <TextBox Height="24" Name="text" Width="120" HorizontalAlignment="Left" Text="{Binding Path=FromDatetime, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnExceptions=True, ValidatesOnDataErrors=True}"/>
  <sdk:ValidationSummary Name="errorSummary" />

我的问题是,当我输入一些无效值并按下按钮(这些只是SubmitChanges()到我的button1_Click处理程序中的DataContext时),TimePicker控件不会显示任何错误消息。 就我而言,我尝试了3种模式。

  1. TimePicker控件和按钮
  2. TimePicker控件,ValidationSummary和Button
  3. TextBox和Button
  4. TextBox,ValidationSummary和Button
  5. 结果是,
    模式1:显示没有错误消息,并且TimePicker周围没有红色细边框 模式2:TimePicker与模式1相同,但ValidationSummary显示错误消息
    模式3:TextBox显示错误消息和红色细边框
    模式4:TextBox和ValidationSummary都显示错误消息

    那么,我怎样才能让TimePicker像TextBox一样向我显示错误信息?

    感谢。

2 个答案:

答案 0 :(得分:0)

如果您使用的是Silverlight 3,那么this链接描述了默认的datepicker支持验证错误,这就是它出现在ValidationSummary中的原因,但是datepicker的默认模板没有默认状态显示这些错误。

还有一些链接可用于获取自定义日期选择器模板,或者您可以创建自己的模板。

答案 1 :(得分:0)

有关修复TimeUpDown

的示例,请参阅"Re: Validation not working for TimeUpDown"

此外,对DatePicker的相关修复:"Silverlight DatePicker Validation States"

似乎问题是VSM(可视状态管理器)的某些状态即使在控件执行验证时也会丢失,即InvalidFocused和InvalidUnfocused状态,如下所述:

"Re: DatePicker has no InvalidFocused or InvalidUnfocused visual states"