2010-10-31 38 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和東西。 也許嘗試使用其他庫或更改操作系統,或等到操作系統支持它。

謝謝,

相關問題