我无法在包含datepicker和textblock的WPF datagrid模板列上设置验证

时间:2011-05-05 21:43:01

标签: wpf wpfdatagrid

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上应用样式呢? 我希望我的问题很明确。

0 个答案:

没有答案