ObservableValidator Int 验证不起作用

问题描述 投票:0回答:1

我使用 ObservableValidator 来验证 int 值, 我已经在我的视图模型中实现了 ObservableValidator,

 [ObservableProperty]
 [NotifyDataErrorInfo]
 [Required(ErrorMessage = "Number of Pins must be greater than 0")]
 [Range(1, int.MaxValue, ErrorMessage = "Number of Pins must be greater than 0")]
 private int createPartLibraryNumberOfPins;

它适用于大多数情况,但是当值为空时,在 GUI 中我可以看到错误,但在 ViewModel 中

HasErrors 属性未更新。

您能否建议一种在 ViewModel 中更新 HasErros 的方法。

enter image description here

问候 杰斯汀 CI

c# wpf windows-community-toolkit community-toolkit-mvvm
1个回答
0
投票

您应该尝试使用值转换器

public class IntToStringConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        return value is int intValue
            ? intValue.ToString()
            : string.Empty;
    }

    public object ConvertBack(object value, Type targetType, object parameter, string language)
    {
        return value is string stringValue
            ? int.Parse(stringValue)
            : 0;
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.