У меня странная проблема с открытием моего UserControl в Expression Blend при использовании элемента управления Silverlight Toolkit. Мой UserControl использует ListBoxDragDropTarget инструментария следующим образом:
<controlsToolkit:ListBoxDragDropTarget mswindows:DragDrop.AllowDrop="True" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<ListBox ItemsSource="{Binding MyItemControls}" ScrollViewer.HorizontalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<controlsToolkit:WrapPanel/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
</controlsToolkit:ListBoxDragDropTarget>
Все работает должным образом во время выполнения и отлично выглядит в Visual Studio 2008. Однако, когда я пытаюсь открыть свой UserControl в Blend, я получаю XamlParseException: [Строка: 0 Позиция: 0] , и я не могу увидеть что-нибудь в представлении дизайна. Точнее, Бленд жалуется:
Элемент «ListBoxDragDropTarget» не может быть отображен из-за проблемы с System.Windows.Controls.ListBoxDragDropTarget: несоответствие TargetType.
Мое приложение silverlight ссылается на System.Windows.Controls.Toolkit из выпуска инструментария от ноября 2009 года, и я обязательно включил эти объявления пространства имен для ListBoxDragDropTarget:
xmlns:controlsToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit"
xmlns:mswindows="clr-namespace:Microsoft.Windows;assembly=System.Windows.Controls.Toolkit"
Если я закомментирую обёртку элемента управления ListBoxDragDropTarget и просто оставлю ListBox, я смогу увидеть все отлично в режиме конструктора без ошибок. Кроме того, я понял, что это происходит с различными элементами управления Silverlight Toolkit, потому что если я закомментирую ListBoxDragDropTarget и заменим его на
<controlsToolkit:BusyIndicator />
такая же точная ошибка возникает в Blend. Что еще более странно, так это то, что, если я запускаю совершенно новое приложение silverlight в blend, я могу добавить эти элементы инструментария без каких-либо ошибок, поэтому кажется, что со ссылками на мой проект в сборках инструментария происходит нечто глупое.
Я почти уверен, что это как-то связано с загрузкой стилей по умолчанию для элементов управления инструментария из его generic.xaml, поскольку ошибка связана с TargetType, и Blend, вероятно, пытается загрузить стили по умолчанию.
Кто-нибудь сталкивался с этой проблемой раньше или есть идеи относительно того, в чем может быть моя проблема?