結局、
<MenuItem Header="{Binding Value}" HeaderStringFormat="{}{0}円"/>
は
<MenuItem Header="{Binding Value, StringFormat={}{0}円}" HeaderStringFormat="{}{0}円"> <MenuItem.ItemTemplate> <DataTemplate> <TextBlock Text="{Binding ., StringFormat={Binding HeaderStringFormat}}" /> </DataTemplate> </MenuItem.ItemTemplate> </MenuItem>
と自動で展開されて、
<MenuItem>
<MenuItem.Header>
<TextBlock Text="{Binding Value, StringFormat={}{0}円}"/>
</MenuItem.Header>
</MenuItem>
と等可になる、ということですかね。ソースだけで動きを追うのたいへんだなぁ…。