在WPF组合框中验证所选值

本文关键字:验证 WPF 组合 | 更新日期: 2023-09-27 18:16:49

就像标题所说的,我试图验证我的表单,但我有一个问题获得组合框值:

<ComboBox Name="ComboBox_Country" 
          Validation.Error="Validation_Error"
          Text="{Binding UpdateSourceTrigger=PropertyChanged, 
                         Path=Form_Country,
                         ValidatesOnDataErrors=true,
                         NotifyOnValidationError=true}"/>

然后用我的类FormValidation验证,像这样:

            public string this[string columnName]
            {
               get
            {
               string result = null;
               if (columnName == "Form_Country")
               {
                  if (string.IsNullOrEmpty(Form_Country) || !verifyNumericValue(Form_Country))
                    result = "Please choose a correct option.";
               }
            }

我使用这些函数在我的表单中调用验证。

    private void Confirm_CanExecute(object sender, CanExecuteRoutedEventArgs e)
    {
        e.CanExecute = _errors == 0;
        e.Handled = true;
    }
    private void Confirm_Executed(object sender, ExecutedRoutedEventArgs e)
    {
        _generic = new UnidadValidation();
        grid_UnidadData.DataContext = _generic;
        e.Handled = true;
    }
    private void Validation_Error(object sender, ValidationErrorEventArgs e)
    {
        if (e.Action == ValidationErrorEventAction.Added)
            _errors++;
        else
            _errors--;
    }

我希望获得选定的值,而不是选定的文本。我最好的选择是什么?

在WPF组合框中验证所选值

我笨,笨,笨,缺乏观察力。如果你要将ComboBox的Text改为SelectedValue,如下所示:

<ComboBox Name="ComboBox_Pais" 
          Validation.Error="Validation_Error"
          SelectedValue="{Binding UpdateSourceTrigger=PropertyChanged, 
                                  Path=Escuela_Pais,
                                  ValidatesOnDataErrors=true, 
                                  NotifyOnValidationError=true}"/>

One将获得选定的值而不是文本。

对于那些可能想要阅读它的人,我在这里找到了原始教程。

WPF文本框验证与IDataErrorInfo