Исключение ExpressionBlend, когда UserControl содержит мой пользовательский элемент управления - PullRequest
0 голосов
/ 17 ноября 2011

Я могу просто отредактировать этот UserControl в Visual Studio, но я получаю это странное исключение в смеси выражений. Кто-нибудь знает, что я должен искать?

enter image description here

UPDATE

Я не смог понять, как отлаживать / прикреплять. Я сделал все в соответствии с указаниями Майка, но ни одна из контрольных точек не была достигнута. Я провел дополнительное расследование и обнаружил, что, скорее всего, моя проблема связана с themes / generic.xaml

У моего решения для Visual Studio есть проект с именем Infrastructure.dll. Внутри этого проекта у меня есть папка themes, а внутри - файл generic.xaml. Generic.xaml установлен для компиляции в качестве ресурса. Мой контрольный класс живет в одном проекте.

У меня есть другой проект с именем 'Module.dll', и этот проект ссылается Infrastructure.dll

  1. Когда я открываю представление с моим элементом управления (представление из Infrastructure.dll), оно работает в Visual Studio, но выдает эту ошибку в Blend.
  2. Я могу перетащить элемент управления в Blend, и он выдаст ту же ошибку. Я попытался удалить строку, где я применяю шаблон для контроля (шаблон в generic.xaml), и это работает.
  3. Шаблон хорош, я создал его с помощью Blend и сам скопировал в generic.xaml.
  4. Когда я создаю представление INSIDE Infrastructure.dll и удаляю свой элемент управления в этом представлении - оно работает.

Итак, я пришел к выводу, что Blend не видит шаблон внутри generic.xaml, который живет в указанном проекте. Как мне это исправить?

Ответы [ 2 ]

1 голос
/ 17 ноября 2011

Откройте ваш проект в Blend (но пока не открывайте файл проблемы).Также откройте свое решение в Visual Studio (порядок открытия не важен).В Visual Studio выберите «Отладка» -> «Присоединить к процессу» и выберите «Blend.exe».Убедитесь, что вы нарушаете все исключения.Как только отладчик завершит присоединение и загрузку всего, откройте файл проблемы в Blend.Отладчик должен (мы надеемся, что это трудно определить из деталей исключений) остановиться в проблемной области в вашем коде.

0 голосов
/ 21 ноября 2011

Проблема была определенно связана с неспособностью Blend прочитать / найти generic.xaml Кстати, Visual Studio не имеет этой проблемы.Пока я нашел обходной путь - с удовольствием приму другой ответ, если я смогу избежать этого ..

После добавления ссылки на ресурс для просмотра - все работает в Blend.Это означает, что я должен добавить этот XAML ко всем моим представлениям ..

<UserControl.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/Infrastructure.SL;component/Themes/generic.xaml"/>
            </ResourceDictionary.MergedDictionaries> 
...