我的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控件一个名称解决了问题。任何人都知道为什么会这样吗?
答案 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:名称也适用于我。