datagrid模板列包含datepicker和textblock,用于编辑的datepicker和用于显示的文本框。 我尝试在此列上应用样式来验证它,但它只适用于datepicker而不是textblock:
<Style x:Key="DateEditStyle" TargetType="{x:Type my:DatePicker}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="Plase check the data in the cell"/>
</Trigger>
</Style.Triggers>
</Style>
<Style x:Key="TextBlockEditStyle" TargetType="{x:Type TextBlock}">
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip"
Value="Plase check the data in the cell"/>
</Trigger>
</Style.Triggers>
</Style>
<my:DataGridTemplateColumn x:Name="SrvDateCol" Header="Date" Width="100">
<my:DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<my:DatePicker SelectedDate="{Binding srvdate,StringFormat=d, ValidatesOnExceptions=True}"
SelectedDateChanged="DatePicker_SelectedDateChanged"
Style="{StaticResource DateEditStyle}"></my:DatePicker>
</DataTemplate>
</my:DataGridTemplateColumn.CellEditingTemplate>
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding srvdate,StringFormat=d,ValidatesOnExceptions=True}"/>
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
当我在单元格中输入错误日期时,样式效果很好,但是当我离开它时,样式会消失,并且单元格将返回其原始状态。那么如何在TextBlock上应用样式呢? 我希望我的问题很明确。