3
我有使用的ItemsSource綁定到一個集合的上下文菜單:如何將靜態項目添加到綁定到現有數據源的上下文菜單中?
<Button Content="Submit">
<Button.ContextMenu>
<ContextMenu Name="SubmitButtonContextMenu" ItemsSource="{Binding MyDataSource}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<!-- Setters -->
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</Button.ContextMenu>
</Button>
而且它目前會出現這樣的:Menu Item
基本上,我想補充兩個靜態項目:另一個菜單項即會永遠不會改變,還有一個間隔分隔我的靜態內容和我的動態內容。我可以將我的收藏充滿它與這些數據綁定,但我覺得應該有一個更優雅的解決方案。我也寧願避免使用子上下文菜單。
編輯:這就是我最終實現:
<Window ...>
<Window.Resources>
<s:SubmitItemStyleSelector x:Key="SubmitItemStyleSelector">
<s:SubmitItemStyleSelector.SubmitButtonStyle>
<Style TargetType="MenuItem">
<!--Setters-->
</Style>
</s:SubmitItemStyleSelector.SubmitButtonStyle>
</s:SubmitItemStyleSelector>
<CollectionViewSource x:Key="MyDataViewSource" Source="{Binding MyDataSource}"/>
</Window.Resources>
...
<Button Content="Submit">
<Button.ContextMenu>
<ContextMenu ItemContainerStyleSelector="{Binding Source={StaticResource SubmitItemStyleSelector}}">
<ContextMenu.ItemsSource>
<CompositeCollection>
<MenuItem Header="No Change"/>
<Separator/>
<CollectionContainer Collection="{Binding Source={StaticResource MyDataViewSource}}"/>
</CompositeCollection>
</ContextMenu.ItemsSource>
</ContextMenu>
</Button.ContextMenu>
</Button>
然後我SubmitItemStyleSelector發現我從MyDataSource想做的只是這些項目的額外造型的類型。
你將在運行時這些元素? – Smeegs