我正在使用带有一些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与模式1相同,但ValidationSummary显示错误消息
模式3:TextBox显示错误消息和红色细边框
模式4:TextBox和ValidationSummary都显示错误消息
那么,我怎样才能让TimePicker像TextBox一样向我显示错误信息?
感谢。
答案 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"