将验证规则类添加到绑定时出错

时间:2014-01-28 14:38:12

标签: c# wpf xaml data-binding validationrules

我想在textBox中添加验证规则,问题是当我执行以下代码时出现以下错误消息,

“myValidations”类型的值无法添加到“Collection”1“类型的集合或词典中。

myValidations类角色处于活动状态。

可能是什么问题?

    <TextBox x:Name="Name" Grid.Column="4" Margin="0,50,0,0"  Grid.Row="2" Style="{StaticResource tooltipError}">
        <Binding ElementName="textBlock" Path="Text">
                <Binding.ValidationRules>
                    <viewModel:MyValidationsRules/>
                </Binding.ValidationRules>
            </Binding>
    </TextBox>

文本框继承自以下样式:

        <Style TargetType="TextBox">
            <Setter Property="AcceptsReturn" Value="True"/>
            <Setter Property="AllowDrop" Value="True"/>
            <Setter Property="HorizontalAlignment" Value="Left"/>
            <Setter Property="Height" Value="44"/>
            <Setter Property="Width" Value="199"/>
            <Setter Property="TextWrapping" Value="Wrap"/>
            <Setter Property="VerticalAlignment" Value="Top"/>
            <EventSetter Event="PreviewDragEnter"
                   Handler="DropText_PreviewDragEnter"/>
            <EventSetter Event="PreviewDrop"
                   Handler="DropText_PreviewDrop"/>
            <EventSetter Event="PreviewDragOver"

        </Style>

2 个答案:

答案 0 :(得分:1)

不确定您的问题,但我认为您错过了代码中的<TextBox.Text>标记。

<TextBox x:Name="Name" Grid.Column="4" Margin="0,50,0,0"  Grid.Row="2" Style="{StaticResource tooltipError}">
<TextBox.Text>
        <Binding ElementName="textBlock" Path="Text">
                <Binding.ValidationRules>
                    <viewModel:MyValidationsRules ValidatesOnTargetUpdated="True"/>
                </Binding.ValidationRules>
            </Binding>
</TextBox.Text>
    </TextBox>

答案 1 :(得分:0)

我认为问题在于您的MyValidationsRules不会继承ValidationRule,或者您的类MyValidationsRules不会覆盖Validate方法。这个类和这个方法必须是plubics。

public class MyValidationsRules : ValidationRule
{

    public override ValidationResult Validate(object value, CultureInfo cultureInfo)
    {

    }
}