C# XAML可以';找不到用于验证的命名空间

C# XAML可以';找不到用于验证的命名空间,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,(请容忍我,我仍在学习WPF,尤其是MVVM!) 我编写了一个验证规则,并在XML中编写了样式和所有内容。我遇到了一个我无法理解的小问题,那就是XAML说名称空间不存在。在XAML标题处,我添加了以下内容: xmlns:validators="clr-namespace:New_ComplaintManager.ViewModels" 在我的文本框中,我有: validators:RequiredFields ErrorMessage="username is required." />

(请容忍我,我仍在学习WPF,尤其是MVVM!)

我编写了一个验证规则,并在XML中编写了样式和所有内容。我遇到了一个我无法理解的小问题,那就是XAML说名称空间不存在。在XAML标题处,我添加了以下内容:

xmlns:validators="clr-namespace:New_ComplaintManager.ViewModels"
在我的文本框中,我有:

validators:RequiredFields ErrorMessage="username is required." />
但是XAML说:

The tag 'RequiredFields' does not exist in XML namespace 
'clr-namespace:New_ComplaintManager.ViewModels'.
但ViewModel包含以下内容:

namespace New_ComplaintManager.ViewModels
{
class RequiredField
{
    public class RequiredFields : ValidationRule

所以我被卡住了。我错过了一些非常明显的东西,或者我把事情搞砸了。我甚至读了这本指南:没有用。任何帮助都会很棒。这是一次很好的学习经历

请进行如下更改

namespace New_ComplaintManager.ViewModels
{
  public class RequiredFields : ValidationRule
  {

  }

}
请删除下面的行

class RequiredField

需要删除上面的类,因为它没有公开定义,外部也不知道您的RequiredFields类。

Ashok Rathold已经回答了-我加上我的2美分:尝试使用完整声明,如中所示

xmlns:validators="clr-namespace:clr-namespace:New_ComplaintManager.ViewModels;assembly=your_assembly"

在使用WPF时,尽量避免嵌套类,因为在某些情况下,我们无法轻松引用最内部的类。