Tom*_*fka 21 wpf binding command contextmenu
我有一组表示菜单项的对象(viewmodels).当单击MenuItem时,每个命令都要执行.
如果我想静态地进行菜单,我这样做:
<ContextMenu>
<MenuItem Header="{Binding Text1}" Command={Binding Command1}>
<MenuItem Header="{Binding Text2}" Command={Binding Command2}>
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)
但是当我事先不知道这些项目(它们来自集合)时,我需要分配ContextMenu.ItemsSource - 并将文本放入ItemTemplate.
<ContextMenu ItemsSource="{Binding MyMenuItems}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Text2}" /> <!-- But where to put Command binding? TextBlock.Command makes no sense, and we have no access to MenuItem! -->
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)
但是,这样,我无法将Command绑定到 - 因为我无法获取每一行的MenuItem!
请问有什么建议吗?感谢你们!
ito*_*son 31
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding AssociatedCommand}" />
</Style>
</ContextMenu.ItemContainerStyle>
Run Code Online (Sandbox Code Playgroud)
其中AssociatedCommand是保存ICommand的viewmodel对象的属性.
| 归档时间: |
|
| 查看次数: |
32281 次 |
| 最近记录: |