RibbonComboBox の SelectedItemをバインドする際の問題について説明しました。このコントロールのスタイルを設定しようとすると、別の非常に厄介な問題が発生します。
上記の投稿のスタイル設定されていない ComboBox から始めます。
<r:RibbonComboBox >
<r:RibbonGallery SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
<r:RibbonGalleryCategory ItemsSource="{Binding Controls}" DisplayMemberPath="Caption" />
</r:RibbonGallery>
</r:RibbonComboBox>
期待される結果が得られます:
ただし、Microsoft Blend (VS 2012 のプレビュー) を使用してスタイルを適用すると、Object | スタイルを編集 | コピーを編集... (Blend または Visual Studio を使用してテンプレートのみをコピーしても同じ効果があります):
選択したアイテムが正しく表示されなくなります - DisplayMemberPath プロパティの代わりに、型名が表示されます。ドロップダウンの項目はまだ正しいです。スタイルをまだ変更していないことに注意してください。この問題を引き起こすのは、抽出されるデフォルトのスタイル/テンプレートです。
<r:RibbonComboBox Style="{DynamicResource RibbonComboBoxStyle1}" >
また、RibbonComboBox の ItemContainerStyle にはターゲット タイプの RibbonMenuItem があり、実際の RibbonGalleryItems に影響を与えないように見えるため、ドロップダウン項目のスタイルを設定するのにも問題がありました (主にマウスオーバーの背景の cornerradius を変更したかった)。
- RibbonComboBox スタイルを修正するには?
- Blend/VS 経由で RibbonGalleryItem スタイルにアクセスするにはどうすればよいですか?