获得异常“未找到类型'扩展器'”

时间:2011-03-23 13:23:03

标签: silverlight silverlight-toolkit expander

我的Silverlight应用程序中有类似的内容:

<navigation:Page x:Class="PPCa.Modules.ProjectManager.Client.Views.ProjectDetailView" 
                 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
                 xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
                 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
                 xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" 
                 xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit" 
                 xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation"
                 xmlns:controls="clr-namespace:PPCa.Common.Infrastructure.Controls;assembly=PPCa.Common.Infrastructure"
                 xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" 
                 mc:Ignorable="d"
                 d:DesignHeight="768"
                 d:DesignWidth="1024"
                 Title="ProjectDetailView Page">
    <toolkit:Expander>
    </toolkit:Expander>
</navigation:Page>

它编译得很好,但我得到了异常“未找到类型'扩展器'。”当我运行应用程序并导航到页面时。

编辑:

我尝试将工具包命名空间更改为:

xmlns:toolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"

现在它仍然编译,我得到了例外:

  

找不到“Expander”类型   因为   'CLR-命名空间:System.Windows.Controls;装配= System.Windows.Controls.Toolkit'   是一个未知的命名空间。

进一步修改:

我所要做的只是命名他们。奇怪的是,给每个Expander控件一个名称解决了问题。任何人都知道为什么会这样吗?

4 个答案:

答案 0 :(得分:2)

由于您的引用似乎很好,请通过查看对象浏览器中的对象,仔细检查System.Windows.Controls命名空间中是否存在Expander类。如果是,请尝试删除引用并重新编译。你应该收到一个错误(这是一件好事)。如果你不这样做,那么必须有一些其他参考。删除所有引用后抛出编译错误,读取对System.Windows.Controls.Toolkit dll的引用。它应该是v2.0.50727,如果所有内容(Toolkit,SDK,Silverlight)都安装正确,可以从GAC获得。

答案 1 :(得分:2)

我对C1Expander类有同样的问题。给控件起一个名字对我不起作用。最初,我使用了命名空间

xmlns:c1Ext="clr-namespace:C1.Silverlight.Extended;assembly=C1.Silverlight.Extended.5"

使用不同的命名空间名称

xmlns:ComponentOneExtensions="clr-namespace:C1.Silverlight.Extended;assembly=C1.Silverlight.Extended.5"

而是修复它。请注意,只有名称更改了而不是clr-namespace的东西。不知道为什么......

答案 2 :(得分:1)

刚刚添加了一个 x:名称“controlName”来控制来自其他程序集和bingo ..它工作得非常好。任何人都可以解释这种行为吗?

答案 3 :(得分:0)

DataGrid有类似问题。添加x:名称也适用于我。