我正在用Prism编写WPF应用程序,我正在使用MVVM,
现在,我有一个使用Items Control的视图,我希望每个项目都具有一定的外观,并且可以选择为每个项目添加唯一的上下文菜单。 所以到目前为止看起来像这样:
<ItemsControl Grid.Column="1" ItemsSource="{Binding DeviceHolders}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Image Name="image" Source="{Binding ImageIndex, Converter={StaticResource ImageIndexToLargeImageBitmapSource}}" Margin="5" VerticalAlignment="Center" HorizontalAlignment="Center">
<Image.ContextMenu>
<ContextMenu <--THIS AS A UNIQUE REGION WHICH THE REGION NAME WILL BE string.format("{0}-{1}", "DeviceHolderRegion", DeviceHolder.ID)-->/>
</Image.ContextMenu>
</Image>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
正如我在代码中所写,我希望上下文菜单注册为具有唯一名称的区域(对于每个设备持有者对象,我想根据其类型添加不同的上下文菜单)。
有办法吗?
感谢。
答案 0 :(得分:1)
我不知道你可以使用ContextMenu作为一个地区 - 你每天都学到新东西!
无论如何,请尝试以下方法: -
<ContextMenu>
<regions:RegionManager.RegionName>
<MultiBinding StringFormat="{}{0}-{1}">
<Binding Path="DeviceHolderRegion" />
<Binding Path="DeviceHolder.ID" />
</MultiBinding>
</regions:RegionManager.RegionName>
</ContextMenu>
我没有尝试过运行它,但是VS XAML编辑器并没有抱怨语法,这是一个很有希望的开始。