2013-03-06 2 views
0

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

Так что мой код в xaml: первый в сетке есть список, в котором я связал весь список, который является списком schedList в файле listbox.itemtemplate и внутри шаблона данных привязал конкретный элемент к текстовому блоку

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <ListBox x:Name="scheduleListbox" ItemsSource="{Binding scheduleList}" Hold="scheduleListbox_Hold" Tap="scheduleListbox_Tap" > 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Vertical" Height="150" Width="460"> 
        <TextBlock x:Name="textBlock1" Text="{Binding ScheduleName}" Foreground="WhiteSmoke" FontSize="32"/> 
        <TextBlock x:Name="textBlock2" Text="{Binding ScheduleDate}" Foreground="Red" Margin="0,10,0,0"/> 
        <StackPanel Orientation="Horizontal" Height="70" Width="460" Hold="StackPanel_Hold"> 
         <TextBlock x:Name="textBlock3" Text="{Binding StartTime}" Margin="0,5,0,0"/> 
         <TextBlock x:Name="textBlock4" Text="{Binding EndTime}" Margin="50,5,0,0"/> 
         <toolkit:ContextMenuService.ContextMenu> 
          <toolkit:ContextMenu x:Name="menuItem" VerticalOffset="100.0" IsZoomEnabled="True" > 

           <toolkit:MenuItem Header="Add to calender" ItemsSource="{Binding ScheduleName }"/> 
           <!--<toolkit:MenuItem Header="Description" ItemsSource="{Binding Description}"/>--> 

          </toolkit:ContextMenu> 
         </toolkit:ContextMenuService.ContextMenu> 
        </StackPanel> 
       </StackPanel> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox> 
</Grid> 

Скажите, пожалуйста, как связать имя описания и расписания в контекстном меню, либо с помощью кода, либо с помощью xaml.

Как привязать данные в контекстном меню через код или через xaml?

ответ

1

Я создаю контекстное меню breadcrumb с привязкой, используя следующий код. Код, который вам интересен, - это набор инструментов: раздел ContextMenu.ItemTemplate, в котором указаны привязки. Обратите внимание, что вы также можете привязать к параметру команды, как я делаю, с индексом.

Инструментарий: Раздел ContextMenu.Template не требуется. Я добавил это, чтобы разрешить прокрутку элементов, если на экране больше, чем поместится на экране, а также для перемещения меню в нижней части экрана.

<toolkit:ContextMenuService.ContextMenu> 
     <toolkit:ContextMenu x:Name="breadCrumbContextMenu" ItemsSource="{Binding CloudViewModel.BreadCrumbMenuItems}" Opened="ContextMenu_Opened" Closed="Breadcrumb_ContextMenu_Closed"> 
      <toolkit:ContextMenu.Template> 
       <ControlTemplate TargetType="toolkit:ContextMenu"> 
        <Border Margin="0,700,0,0" BorderThickness="1" > 
         <ScrollViewer MaxHeight="700"> 
          <ItemsPresenter/> 
         </ScrollViewer> 
        </Border> 
       </ControlTemplate> 
      </toolkit:ContextMenu.Template> 
      <toolkit:ContextMenu.ItemTemplate> 
       <DataTemplate> 
        <toolkit:MenuItem Click="breadcrumbMenuItem_Click" CommandParameter="{Binding Index}" Padding="0"> 
         <toolkit:MenuItem.Header> 
          <StackPanel Orientation="Horizontal" Height="40"> 
           <Image Source="{Binding Image}" Width="40" Height="40" /> 
           <TextBlock Text="{Binding Text}" Margin="24,0,0,0" /> 
          </StackPanel> 
         </toolkit:MenuItem.Header> 
        </toolkit:MenuItem> 
       </DataTemplate> 
      </toolkit:ContextMenu.ItemTemplate> 
     </toolkit:ContextMenu> 
    </toolkit:ContextMenuService.ContextMenu> 
Смежные вопросы