2010-10-31 37 views
0

我尝试在验证数据WPF应用程序使用IDataErrorInfo的,但如果我尝试在我的类中实现接口IDataErrorInfo的,我得到这个错误:“IDataErrorInfo的”是“命名空间”,但使用像一个“类型” - WPF

'IDataErrorInfo'是一个'命名空间',但用于'类型'我使用命名空间System.ComponentModel。任何提前。

代码是在这里:

public partial class MainWindow : Window 
    { 
     public class Friend : IDataErrorInfo 
     { 
      private string _id; 

      public string ID 
      { 
       get { return _id; } 

       set { _id = value; } 
      } 

      private string _lastError; 

      public string Error 
      { 
       get { return _lastError; } 
      } 

      string IDataErrorInfo.this[string propertyName] 
      { 
       get 
       { 
        switch (propertyName) 
        { 
         case "ID": if (String.IsNullOrEmpty(ID)) 
           _lastError = "Please insert a name!"; 
          break; 

         default: _lastError = string.Empty; 
          break; 

        } 
        return _lastError; 
       } 
      } 
     } 

     public MainWindow() 
     { 
      InitializeComponent(); 
     } 
    } 
} 
+0

这是编译器错误吗?你究竟在哪一行发生这个错误?除了最后一个}你的代码看起来很好。我认为这个错误不在代码示例中。您可能会尝试包含更多信息。例如命名空间。 – Steven 2010-10-31 12:42:35

+0

嗨,史蒂夫,我很愚蠢,WPF应用程序的名称空间被称为接口IDataErrorInfo相同。我必须去睡觉,我很累。 Thnak你。 – Tom 2010-10-31 12:49:01

回答

0

因为它是一个命名空间 你可能会导入错误的DLL

尝试使用Ctrl +空格中IDataErrorInfo的。它是一个命名空间。 或者它可能与您的名称空间相同的名称,使其感到困惑。 在您的导入语句中,您可以尝试使用Error = System.ComponentModel重命名导入的名称空间: ; (例如)

尝试这样的解释: http://msdn.microsoft.com/en-us/library/system.componentmodel.idataerrorinfo.aspx

看一看框架部分 你是什么操作系统?它说它不支持Windows 8和东西。 也许尝试使用其他库或更改操作系统,或等到操作系统支持它。

谢谢,

相关问题