2014-02-13 2 views
0

Я пишу приложение WPF с Prism и я использую MVVM,-Регистрация область в пределах ItemTemplate

Теперь у меня есть представление с элементами управления, и я хочу, чтобы каждый пункт, чтобы иметь определенный вид, с возможностью добавления уникального контекстного меню для каждого элемента. так это выглядит как это до сих пор:

<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> 

Как я уже писал в коде, я хочу, контекстное меню, чтобы зарегистрировать как регион с уникальным именем (для каждого объекта держателя устройства я хочу добавить другой контекст меню, основанное на его типе).

есть ли способ сделать это?

Спасибо.

ответ

1

Я не знал, что вы можете использовать ContextMenu в качестве региона - вы узнаете что-то новое каждый день!

Во всяком случае, попробуйте следующее: -

<ContextMenu> 
    <regions:RegionManager.RegionName> 
     <MultiBinding StringFormat="{}{0}-{1}"> 
      <Binding Path="DeviceHolderRegion" /> 
      <Binding Path="DeviceHolder.ID" /> 
     </MultiBinding> 
    </regions:RegionManager.RegionName> 
</ContextMenu> 

Я не пытался запустить его, но редактор VS XAML не жалуется на синтаксис, который является многообещающим началом.

Смежные вопросы