Не могу использовать дизайнер WPF, потому что не могу найти пользовательский базовый тип окна в XAML, но код в порядке - PullRequest
4 голосов
/ 16 июля 2010

Я использую базовый класс Window в проекте WPF.В коде файла C # ссылка на сборку для базового типа выполняется нормально.В XAML это выглядит так:

<MyNamespace:WindowBase x:Class="MyNamespace.Applications.UserInterface.MainWindow"
                xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
              xmlns:MyNamespace="clr-namespace:MyNamespace.Somewhere;assembly=MyNamespace.Common"
                Title="MainWindow" Height="350" Width="525">
        <Grid>
    </Grid>

Решение отлично компилируется и я могу его запустить.Я просто не могу использовать конструктор в VS 2010. Он выдает следующее исключение: Тип 'MyNameSpace: WindowBase' не найден.Убедитесь, что вы не пропустили ссылку на сборку и что все сборки, на которые имеются ссылки, были собраны.

Хорошо.они были.Я не могу понять, что это за проблема.Этот конкретный базовый класс используется в других проектах просто отлично.Я взял его для нового проекта, и я не могу использовать дизайнер.Очень расстраивает.

Ответы [ 4 ]

3 голосов
/ 16 июля 2010

Обнаружил эту проблему совсем недавно (этот ответ обновлен из комментария).

Если вы копируете dll из сетевого пути, вы должны щелкнуть правой кнопкой мыши файл в проводнике Windows, выбрать «Свойства», а затем «разблокировать»«;существует скрытый поток NTFS, связанный с файлом, и множество файлов при загрузке из сети или копировании по сетевому пути из соображений безопасности.

Жалуется только дизайнер, но проект собирается и работает нормально: странно, не правда ли?!

1 голос
/ 16 июля 2010

Всякий раз, когда дизайнер выступает против меня - первое, что я делаю, это очищаю obj-папки в проекте и перестраиваю. Иногда они почему-то перестают синхронизироваться (обычно, когда я перетаскиваю много файлов и переименовываю визуальные элементы).

0 голосов
/ 16 июля 2010

Fixed. Библиотека, которая содержала мой базовый класс, находилась на диске в сети, к которому у меня не было разрешений. Похоже, что это никак не повлияло на работу VS 2008, но VS 2010, очевидно, воспользовался тем, что разработчик попытался загрузить. Weird.

0 голосов
/ 16 июля 2010

Я не знаю, является ли это той же проблемой, но в VS2008 я пытался создать абстрактные элементы управления UserControls, но пришлось изменить это, потому что дизайнер не поддерживал какие-либо абстрактные базовые классы (однако решение было компилируемым и также работало так, как ожидалось) .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...