我試圖啓動我的需求組合框的驗證....類似的代碼完全適用於一個文本框,但看起來像組合框的行爲完全不同(文本或selectedItem綁定):WPF組合框validationrules
<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但我不能找到任何方式與組合框做到這一點,我可以啓動驗證。
我需要在特定情況下僅在需求時啓動validaiton。
所以我的問題是爲什麼someCombo.UpdateSource不啓動我的驗證?
感謝
米歇爾
你能告訴我們發生故障的'UpdateSource'代碼? – 2014-10-27 14:42:29
someCombo.UpdateSource()//要在此處手動啓動驗證 – michelqa 2014-10-27 14:45:36
「ComboBox」上沒有'UpdateSource'方法。你可以添加你的*實際代碼*,但不能解決問題嗎?你在調用擴展方法嗎?如果是這樣,那麼該方法的代碼是什麼? – 2014-10-27 14:49:04