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 次  |  
        
|   最近记录:  |