可观察验证器在 wpf 中不起作用

Ihs*_*dat 1 c# wpf desktop-application mvvm community-toolkit-mvvm

我正在 wpf mvvm 应用程序中工作,我也使用 Community toolkit.mvvm 。这里我为文本框实现了 Observable 验证器,但它不会影响用户界面,

视图模型:

 public partial class UserViewModel :  ObservableValidator
    {
        [ObservableProperty]
        [Required(ErrorMessage ="Name is Required")]
        [MinLength(3)]
        private string name= "";
    }
Run Code Online (Sandbox Code Playgroud)

XML:

  <TextBox Text="{Binding Name,UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

当我在文本框中输入少于 3 个字符并保留它时,它不起作用,文本框接受每个范围内的字符,也接受空。

Ihs*_*dat 5

谢谢你!@mm8先生

我只是错过了一个属性,--> [NotifyDataErrorInfo]

现在它工作正常。

视图模型:

 public partial class UserViewModel :  ObservableValidator
 {
    [ObservableProperty]
    [NotifyDataErrorInfo]
    [Required(ErrorMessage ="Name is Required")]
    [MinLength(3, ErrorMessage ="Name Should be at least 3 character")]
    private string username;
 }
Run Code Online (Sandbox Code Playgroud)

XML:

 <TextBox Text="{Binding Username, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)