WPF UserControl验证问题

时间:2011-08-09 05:58:50

标签: wpf validation

我有UserControl限制在我的视图模型中。视图模型实现IDataErrorInfoUserConrolValidation.ErrorTemplate。在此模板中,我使用转换器显示错误的工具提示:

<UserControl.Style>
    <Style TargetType="{x:Type UserControl}">
        <Setter Property="Validation.ErrorTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <DockPanel>
                        <AdornedElementPlaceholder x:Name="adorner">
                            <Image x:Name="imgError"
                                       Width="32"
                                       Height="32"
                                       Margin="5"
                                       HorizontalAlignment="Left"
                                       VerticalAlignment="Bottom"
                                       ToolTip="{Binding ElementName=adorner,Path=AdornedElement.(Validation.Errors),Converter={StaticResource ValidationErrors2TooltipConverter},ConverterParameter='Couldn't save hour work:'}"
                                       Source="{StaticResource ErrorDrawingImage}" />
                        </AdornedElementPlaceholder>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Style>

当我更改某些属性时(例如:ComboBox的选择),错误的数量应该会改变,但事实并非如此。我找不到在ToolTip中刷新错误的方法。

问题:

  1. 我如何刷新ToolTip
  2. 中的错误
  3. 验证适用于UserControl,但不适用于其中的组件。我为Validation.ErrorTemplate中的组件定义了UserControl,但是它们不可见,但是对于查看模型的限制(使用IDataErrorInfo)。

1 个答案:

答案 0 :(得分:0)

必须对UserControl中的每个控件应用验证模式。没有“继承”。