0

我想向 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>
4

2 回答 2

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>
于 2014-01-28T14:56:42.153 回答
0

我认为问题在于您的 MyValidationsRules 没有继承 ValidationRule 或您的 MyValidationsRules 类没有覆盖 Validate 方法。这个类和这个方法必须是公共的。

public class MyValidationsRules : ValidationRule
{

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

    }
}
于 2014-01-28T15:33:46.843 回答