Получение исключения «Тип« Expander »не найден» - PullRequest
1 голос
/ 23 марта 2011

У меня есть что-то подобное в моем приложении 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>

Хорошо компилируется, но я получаю исключение "Тип 'Expander' не найден" Когда я запускаю приложение и перехожу на страницу.

редактирует:

Я попытался изменить пространство имен инструментария на:

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

и теперь он все еще компилируется, и я получаю исключение:

Тип 'Expander' не найден так как 'CLR-пространств имен: System.Windows.Controls; сборка = System.Windows.Controls.Toolkit' является неизвестным пространством имен.

Дополнительные правки:

Все, что мне нужно было сделать, это назвать их. Как ни странно, присвоение имени каждому элементу управления Expander решило проблему. Кто-нибудь знает, почему это может быть?

Ответы [ 4 ]

2 голосов
/ 24 сентября 2013

У меня была такая же проблема с классом 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. Хотя не знаю почему ...

2 голосов
/ 23 марта 2011

Поскольку ваши ссылки выглядят нормально, проверьте, существует ли класс Expander в пространстве имен System.Windows.Controls, просмотрев объекты в браузере объектов. Если это так, попробуйте удалить ссылку и перекомпилировать. Вы должны получить ошибку (что хорошо). Если нет, то где-то должна быть другая ссылка. После удаления всех ссылок для выдачи ошибки компиляции прочитайте ссылку на dll System.Windows.Controls.Toolkit. Это должен быть v2.0.50727 и доступный в GAC, если все (Toolkit, SDK, Silverlight) установлено правильно.

1 голос
/ 09 февраля 2012

Только что добавлено x: Имя "controlName" для управления из других сборок и бинго .. Работает просто отлично. Кто-нибудь может объяснить поведение .?

0 голосов
/ 24 июля 2012

Была проблема с симларом в DataGrid. Добавление x: Имя также работает для меня.

...