2011-07-18 38 views
2

我創建了下面的XAML,大約(縮短爲簡潔起見):自定義類給我懸而未決的標籤錯誤

<Window ... 
    xmlns:Models="clr-namespace:Project.Presentation.Models;assembly=Project" 
    ...> 
    <Window.Resources> 
     <Models:ProfileCollection x:Key="Profiles" /> 
    </Window.Resources> 
</Window> 

ProfileCollection被定義爲,簡單地說:

public class ProfileCollection : ObservableCollection<Profile> 
{ 
    public ProfileCollection() 
    { 
     foreach (Profile p in Configuration.Instance.Profiles) 
      this.Add(p); 
    } 
    // code that handles static added/removed events 
} 

在此之前,在XAML and Custom Classes on MSDN中規定的要求。

然而,當我嘗試編譯我得到這個錯誤:

錯誤MC3074:標記 'ProfileCollection' 不存在XML命名空間 'CLR-Project.Presentation.Models;裝配=工程' 存在。第18行的位置7.

我也試過:

<Window ... 
    xmlns:SystemCollections="clr-namespace:System.Collections;assembly=mscorlib" 
    ...> 
    <Window.Resources> 
     <SystemCollections:ArrayList x:Key="arrayList" /> 
    </Window.Resources> 
</Window> 

這工作正常。

public class SomeList : ArrayList { public SomeList() { } } 

嘗試使用此對象時出現同樣的錯誤。這是和以前一樣的錯誤。

<Models:SomeList x:Key="arrayList" /> <!-- MC3074 --> 
+0

'ProfileCollection'類放在命名空間'Project.Presentation.Models中嗎?另外,如果XAML和類都在'Project'程序集中,請嘗試從xmlns聲明中刪除「assembly = Project」 – sll

+0

刪除「assembly = Project」似乎修復了它。謝謝 - 你應該發佈你的答案,我會投票! – Rob

回答

6

'ProfileCollection'類放在命名空間'Project.Presentation.Models?此外,如果XAML和類都在'Project'集會,試圖從xmlns聲明

好運刪除「assembly=Project」)

+0

非常感謝好友 – Vlad

0

我得到了同樣的錯誤。原因是不同的.NET框架(程序集有4.6.1,我的基礎項目有4.5.1)。

也許這個信息有助於他人(錯誤代碼在我的腦海裏不是很精確......)。