我想在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>
答案 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)
{
}
}