XAML无法找到用于验证的命名空间

时间:2014-10-22 02:50:10

标签: c# wpf xaml mvvm

(忍受我,我还在学习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

所以我被卡住了。我错过了一些非常明显的东西,或者我搞砸了某个地方。我甚至读过这本指南:XAML MSDN Guide无济于事。任何帮助都会很棒。这虽然是一次很好的学习经历!

2 个答案:

答案 0 :(得分:1)

请按以下方式进行更改

namespace New_ComplaintManager.ViewModels
{
  public class RequiredFields : ValidationRule
  {

  }

}

请删除以下行

class RequiredField

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

答案 1 :(得分:1)

正如Ashok Rathold已经回答的那样 - 我加上我的2美分:尝试使用完整的声明,如

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