我使用Windows Ribbon与WPF一起使用Caliburn Micro。是否可以使用ViewModels将RibbonTabs
移动到不同的视图中,以便视图更具可读性?
我的MainToolbarViewModel
类绑定了MainToolbarView
。
MainToolbarViewModel :
public TabViewModel Tab { get; set; }
public MainToolbarViewModel()
{
this.Tab = new TabViewModel();
}
MainToolbarView :
<ribbon:Ribbon HorizontalAlignment="Stretch" VerticalAlignment="Top" SelectedIndex="0">
<Ribbon.HelpPaneContent>
<RibbonButton SmallImageSource="../Resources/WindowsIcons/help.png"></RibbonButton>
</Ribbon.HelpPaneContent>
<ContentControl x:Name="Tab"></ContentControl>
</ribbon:Ribbon>
我希望ContentControl
能够作为RibbonTab
使用。这种方法适用于标准控件,但使用功能区时,它根本无法显示任何内容。
TabViewModel :
public class TabViewModel : Screen
{
public TabViewModel()
{
DisplayName = "New Tab";
}
}
TabView的:
<UserControl ......>
<RibbonTab IsSelected="True" Header="{Binding DisplayName}">
<RibbonGroup Header="Types">
<RibbonButton Content="Test"></RibbonButton>
</RibbonGroup>
</RibbonTab>
</UserControl>
我读到了为RibbonTab,RibbonGroup,RibbonButton制作ViewModel,但这看起来很疯狂,因为我需要为每个控件创建ViewModel。
此外,我读到的大多数答案都至少有1年的历史。有什么改变了吗?将RibbonTabs
移动到其他视图模型的最简单方法是什么?
更新
<ContentControl x:Name="Tab"></ContentControl>
在其标题内显示RibbonTab
的内容,所以基本上我有RibbonGroup
在RibbonTab
标题内。
我认为这是因为Ribbon
将<ContentControl>
视为某种标题而不是RibbonTab
。