我是WPF的新手,所以也许我不能正确理解MVVM。我使用Microsoft Ribbon,我需要制作一个带有动态标签的功能区,它会绑定到我的viewModel。我是这样做的:
<Ribbon Grid.Row="1" ItemsSource="{Binding AvaliablePlugins}">
<Ribbon.ApplicationMenu>
<RibbonApplicationMenu SmallImageSource="Images\gear_32.png" KeyTip="F">
<RibbonApplicationMenuItem Header="Exit" ImageSource="Images\stop_32.png" Command="{Binding CloseCommand}" />
<RibbonApplicationMenuItem Header ="About" ImageSource="Images\bookmark.png" Click="ShowAbout"></RibbonApplicationMenuItem>
</RibbonApplicationMenu>
</Ribbon.ApplicationMenu>
<Ribbon.ItemTemplate>
<DataTemplate>
<RibbonTab >
<RibbonTabHeader>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="24" />
<ColumnDefinition Width="24" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<Button Content="X" Click="ClosePlagin"></Button>
<Image Source="{Binding SmallImageSource}" Stretch="UniformToFill" Grid.Column="1" ></Image>
<TextBlock Text="{Binding Name}" Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Center"/>
</Grid>
</RibbonTabHeader>
</RibbonTab>
</DataTemplate>
</Ribbon.ItemTemplate>
这样的绑定对tabControl工作正常,我无法让它适用于wpf功能区。此外,我将需要将动态ribbonButtons绑定到选项卡,我不知道如何处理它。 Myabe我必须以某种方式存储VM中的所有功能区部件(选项卡,组,按钮)?我也找不到关于WPF 4.5 Ribbon的好样本。 而且,也许最好选择第三方功能区控件,比如telerik或syncfusion?到目前为止,微软解决方案并没有让我感到高兴。
我会感激任何帮助!