Сбой WinForms Designer при размещении вложенных пользовательских контроллеров WPF - PullRequest
1 голос
/ 02 мая 2011

Я использую VS2008 SP1 с WPFToolKit v3.5.50211.1.

Я вложил пользовательские элементы управления WPF в проект библиотеки классов следующим образом:

  • MainWpfUserControl
  • Содержит экземпляр NestedUserControl
  • , который содержит экземпляр DataGrid из набора инструментов WPF.

Тот же проект библиотеки классов содержит WinForms UserControlс ElementHost, который содержит MainWpfUserControl.

Я получаю странные ошибки при открытии WinForms UserControl в конструкторе.После небольшой работы (перехвата и регистрации исключения, созданного в конструкторе NestedUserControl), создается исключение следующим образом:

[A] Microsoft.Windows.Controls.DataGridневозможно привести к [B] Microsoft.Windows.Controls.DataGrid.Тип A происходит из «WPFToolkit, версия = 3.5.40128.1, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35» в контексте «LoadFrom» в местоположении «C: \ Program Files \ WPF Toolkit \ v3.5.50211.1 \ WPFToolkit.dll».Тип B происходит из 'WPFToolkit, версия = 3.5.40128.1, культура = нейтральная, PublicKeyToken = 31bf3856ad364e35' в контексте 'LoadNeither' в расположении 'C: \ Documents and Settings \ ... \ Локальные настройки \ Данные приложения \ Microsoft \ VisualStudio\ 9.0 \ ProjectAssemblies \ zfh65-u101 \ WPFToolkit.dll '

Кто-нибудь испытывал что-либо подобное?

ОБНОВЛЕНИЕ

Я, кажется, успешно обошел проблему, поместив WPFToolkit.dll в GAC.Но это нежелательно по другим причинам (например, по умолчанию CopyLocal имеет значение false).Так что, похоже, проблема связана с загрузкой контекста.Есть ли способ контролировать это?

1 Ответ

1 голос
/ 06 мая 2011

После небольшого исследования проблемы, которые у меня возникают, по-видимому, вызваны тем, что конструктор VS загружает неправильную версию сборки. Похоже на проблемы, описанные здесь:

http://blogs.telerik.com/blogs/posts/08-12-23/visual_studio_ldquo_error_creating_control_rdquo.aspx

http://connect.microsoft.com/VisualStudio/feedback/details/361826/error-creating-control-text-could-not-be-set-on-property-with-custom-asp-net-server-controls-in-vs-2008-sp1

Я могу обойти эту проблему, выполнив следующие действия:

  • Закрыть Visual Studio 2008

  • Очистить кеш загрузок сборки (gacutil / cdl)

  • Удалите папку ProjectAssemblies VS2008:

    % USERPROFILE% \ Локальные настройки \ Данные приложения \ Microsoft \ VisualStudio \ 9.0 \ ProjectAssemblies

  • Перезапустите Visual Studio

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