Jit*_*thu 3 validation wpf combobox
我正在使用ComboBox其IsEditable值设置为true 的WPF .基本上,我有一个项目列表显示在ComboBox.如果用户没有找到合适的时间,用户可以输入时间ComboBox.
我已将ValidationRule附加到my,ComboBox.SelectedItem以便每当用户选择一个时间时,我的ValidationClass被调用(从ValidationRule派生).这一切都很好.
由于我ComboBox是可编辑的,用户可以输入自己的时间.每次输入值int时都会调用验证类,ComboBox并且传递给该类的值是我输入的值.现在问题是,如果用户键入的值不是comobbox项的一部分验证类以null值调用,因此无法验证任何内容.
谁能告诉我如何验证ComboBox.Text用户输入的项目?
我的验证课程:
public class TimeValidateRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globalization.CultureInfo cultureInfo)
{
TimeClass timeObj = value as TimeClass;
TimeSpan time;
if(timeObj == null)
return new ValidationResult(false, "Invalid Time");
if(timeObj.Time.Length < 5)
return new ValidationResult(false, "Invalid Time");
try
{
time = TimeSpan.Parse(timeObj.Time);
}
catch
{
return new ValidationResult(false, "Invalid Time");
}
// Get Current time (Arizona time)
if(!CheckAgainstArizonaTime(time))
return new ValidationResult(false, "Invalid Time");
return new ValidationResult(true, null);
}
}
Run Code Online (Sandbox Code Playgroud)
ComboBox xaml中的声明:
<ComboBox ItemsSource="{Binding Source={StaticResource TimeSelections}}"
ItemTemplate="{StaticResource TimeListTemplate}"
Validation.ErrorTemplate="{StaticResource ValidationTemplate}"
Height="30" Width="100"
Name="cbTimes"
>
<ComboBox.SelectedItem>
<Binding
Path="SelectedTime"
UpdateSourceTrigger="PropertyChanged"
>
<Binding.ValidationRules>
<validators:TimeValidateRule/>
</Binding.ValidationRules>
</Binding>
</ComboBox.SelectedItem>
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
谢谢,Jithu
| 归档时间: |
|
| 查看次数: |
8332 次 |
| 最近记录: |