KeyValuePairのリストをMenuItemのリストにバインドしたいとします。 私はMenuIten.HeaderTemplateを使うべきだと思ったが、うまくいかなかった。私は空白のヘッダーしか持っていません。WPF MenuItemヘッダーとヘッダーテンプレート
<MenuItem
Header="Template"
ItemsSource="{Binding Path=Samples}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem>
<MenuItem.HeaderTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Key}" FontWeight="Bold"/>
<TextBlock Text="{Binding Path=Value}" FontStyle="Italic" Margin="5,0,0,0"/>
</StackPanel>
</DataTemplate>
</MenuItem.HeaderTemplate> </MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
次に、MenuItem.HeaderTemplateをMenuItem.Headerに置き換えました。
<MenuItem
Header="Template"
ItemsSource="{Binding Path=Samples}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem>
<MenuItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Path=Key}" FontWeight="Bold"/>
<TextBlock Text="{Binding Path=Value}" FontStyle="Italic" Margin="2,0,0,0"/>
</StackPanel>
</MenuItem.Header>
</MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
ここでHeaderTemplateは動作しません。
ありがとうございます。 XAMLでHeaderTemplateのデータにアクセスするにはどうすればよいですか? MenuItem.Templateはその親であるMenuからDataContextを継承しませんか? –
明らかに私はWPFについてあまり知らなかったときにこの質問を投稿します。 Micahに感謝し、遅く受け入れて申し訳ありません。 –