Кажется, что структура Caliburn Micro извлекает мой SinglePaintToolbarView, когда он привязан как список кнопок на панели инструментов ShellView. Я бы хотел, чтобы кнопки отображали только текстовое содержимое, когда они добавлены в панель инструментов. Но вместо этого я получаю это:Просмотр не разрешается с помощью элементов панели инструментов. Источник
Там не наблюдается никаких интерактивные кнопки на панели инструментов. Я знаю, что мои плагины загружаются успешно, потому что я смог связать один из плагинов в списке как ContentControl, и появилось представление. Он просто не работает, когда я пытаюсь связать список плагинов на панели инструментов.
Вот что у меня есть:
ShellView.xaml
<UserControl x:Class="Starbolt.Views.ShellView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<ToolBarTray>
<ToolBar ItemsSource="{Binding Path=ToolbarPlugins}"/>
</ToolBarTray>
</Grid>
</UserControl>
ShellViewModel.cs
[Export(typeof(IShell))]
public class ShellViewModel : PropertyChangedBase, IShell
{
[ImportMany(typeof(IToolbarPlugin))]
private IEnumerable<IToolbarPlugin> _toolbarPlugins = null;
public IEnumerable<IToolbarPlugin> ToolbarPlugins { get { return _toolbarPlugins; } }
}
SinglePaintToolbarView.xaml
<UserControl x:Class="Starbolt.Plugin.SinglePaintTool.Views.SinglePaintToolView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="128" d:DesignWidth="32">
<Button Name="btnSinglePaintTool" Content="Single Paint Tool" Width="128" Height="32"/>
</UserControl>
SinglePaintToolViewModel. cs
[Export(typeof(IToolbarPlugin))]
public class SinglePaintToolViewModel : IToolbarPlugin
{
}
Да, похоже, это то, что мне нужно будет сделать, чтобы использовать ToolBar. Однако решение ListBox отлично работает для меня. Когда я получу время, я буду исследовать больше на ControlTemplate. –