我正在尝试根据需要启动我的组合框的验证......类似的代码非常适用于文本框,但看起来组合框的行为完全不同(文本或 selectedItem 绑定):
<ComboBox x:Name="someCombo" ItemsSource="{Binding items}">
<ComboBox.SelectedItem>
<Binding Path="Model.SomeItem" UpdateSourceTrigger="PropertyChanged">
<Binding.ValidationRules>
<validation:SomeValidationRule ValidatesOnTargetUpdated="False">
</validation:SomeValidationRule >
</Binding.ValidationRules>
</Binding>
</ComboBox.SelectedItem>
</ComboBox>
和
public class SomeValidationRule : ValidationRule
{
public override ValidationResult Validate(object value,
System.Globalization.CultureInfo cultureInfo)
{
var userText = value as string;
return String.IsNullOrWhiteSpace(userText)?
new ValidationResult(false, "empty combobox error..") :
new ValidationResult(true, null);
}
}
对于文本框,我可以在需要时使用 MyTextBox.UpdateSource 启动验证,但我找不到任何使用组合框的方法。
我只需要在特定情况下按需启动验证。
所以我的问题是为什么 someCombo.UpdateSource 没有启动我的验证?
谢谢
米歇尔