ValidationRule 属于 Binding。这就是为什么你必须在你的控件中指定你的绑定。如果那不是问题,您可以创建一个 UserControl,而不是从 ContentControl 继承,而是从 ComboBox 继承,并在 XAML 中执行以下操作:
<ComboBox blabla
local:xmlns="clr-namespace:YourNameSpace">
<ComboBox.ItemsSource>
<Binding Path="Items">
<Binding.ValidationRules>
<local:YourValidationRule/>
</Binding.ValidationRules>
</Binding>
</ComboBox.ItemsSource>
</ComboBox>
您的另一个选择是创建自己的 Binding,它继承自Binding
并在构造函数中设置其 ValidationRule,如下所示:
public class ValidatedBinding:Binding
{
public ValidatedBinding()
{
this.ValidationRules.Add(new YourValidationRule());
this.ValidatesOnDataErrors = true;
}
}
如何使用它:
ItemsSource="{local:ValidatedBinding Path=Items}"/>