0

我有一个列表,其中有可见的日程名称、日期和时间,但我希望在长按列表框中的特定项目时打开一个上下文菜单,其中只有特定项目的描述和日程名称可见.

所以我在 xaml 中的代码是:首先在网格中有一个列表框,我在其中绑定了 listbox.itemtemplate 中的 scheduleList ansd 整个列表,并且在数据模板中我已经将特定项目绑定到文本块

<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 在上下文菜单中绑定数据?

4

1 回答 1

1

我使用下面的代码创建了一个带有绑定的面包屑上下文菜单。您应该感兴趣的代码是您指定绑定的 toolkit:ContextMenu.ItemTemplate 部分。请注意,您也可以像我对索引值所做的那样绑定到命令参数。

不需要 toolkit: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>
于 2013-03-06T07:57:05.510 回答