1
Menu
の一部をTabControl
のTabItems
にバインドしますが、サブメニューの代わりに水平に表示させます。TabControlにバインディングするMenuItemが水平に表示されます
背景:これは、TabControl
のTabItem
をこのようにMenu
にバインドすることができます。
<Style x:Key="TabMenuItem" TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Path=Header}" />
<Setter Property="IsCheckable" Value="True" />
<Setter Property="IsChecked" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
</Style>
....
<Menu >
<MenuItem Header="My Menu" HorizontalAlignment="Left" >
<MenuItem Header="Tabs" ItemsSource="{Binding ElementName=MyTabControl, Path=Items}" ItemContainerStyle="{StaticResource TabMenuItem}" />
<MenuItem Header="SubItem 1"/>
<MenuItem Header="SubItem 2"/>
<MenuItem Header="SubItem 3"/>
</MenuItem>
</Menu>
これは、この生成します。私は何をしたいが、それはこのように見えるように
です:
これをやってみました。
<Menu >
<MenuItem Header="Tabs" ItemsSource="{Binding ElementName=MyTabControl, Path=Items}" ItemContainerStyle="{StaticResource TabMenuItem}" >
<MenuItem Header="SubItem 1"/>
<MenuItem Header="SubItem 2"/>
<MenuItem Header="SubItem 3"/>
</MenuItem>
</Menu>
実行時に次のメッセージが返されます。
'System.InvalidOperationException' 種類の未処理の例外はPresentationFramework.dll
で発生しました追加情報:ItemsコレクションはのItemsSourceを使用する前に、空である必要があります。重いスタイリングを必要と
'ItemsSource' **、**はXAMLで要素を追加します。問題を解決するには、階層を平坦化する必要があります – lokusking
@lokusking how? – Xaphann