0

我想将上下文菜单添加到列表框。但是当我坚持到列表框项目时,什么也没有发生。谢谢..

此代码是我的列表框的定义。我将上下文菜单添加到列表框中。

<ListBox Grid.Row="1" Name="chList" ItemsSource="{Binding Ch.Texts}" SelectionChanged="TextChanged" Style="{StaticResource ListOfText}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <toolkit:ContextMenuService.ContextMenu>
                <toolkit:ContextMenu Name="ContextMenu">
                    <toolkit:MenuItem Name="Edit" Header="Edit" Click="Edit_Click"/>
                    <toolkit:MenuItem Name="Delete" Header="Delete" Click="Delete_Click"/>
                </toolkit:ContextMenu>
            </toolkit:ContextMenuService.ContextMenu>
        </DataTemplate>
    </ListBox.ItemTemplate>
</Listbox>

在styles.xaml

<Style x:Key="ListOfText" TargetType="ListBoxItem">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ListBoxItem">
                <Border x:Name="RootElement" Padding="{StaticResource PhoneBorderThickness}">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="10" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <Border Grid.Column="0" Background="{StaticResource PhoneAccentBrush}"
                                    Opacity="{Binding IsRead,Converter={StaticResource opacityConverter}}" />
                        <Grid MinHeight="60" Grid.Column="1">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto" />
                                <RowDefinition Height="auto" />
                            </Grid.RowDefinitions>
                            <TextBlock Grid.Row="0" Text="{Binding Title}" TextWrapping="Wrap"
                                           Style="{StaticResource PhoneTextTitle3Style}" />
                            <Grid Grid.Row="1">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="auto" />
                                    <ColumnDefinition Width="*" />
                                </Grid.ColumnDefinitions>
                                <TextBlock Grid.Column="0" Text="{Binding PbDate, Converter={StaticResource dateConverter}}"
                                               VerticalAlignment="Center" TextWrapping="Wrap" Style="{StaticResource PhoneTextSmallStyle}" />
                                <Image Grid.Column="1" Height="{StaticResource PhoneFontSizeNormal}" HorizontalAlignment="Left"
                                           Visibility="{Binding IsStared,Converter={StaticResource visibilityConverter}}" Source="/Toolkit.Content/favs.png" />
                            </Grid>
                        </Grid>
                    </Grid>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

我的解决方案中的 Styles.xaml ......但我无法解决这个问题..

谢谢...

4

1 回答 1

0

您将项目设置DataTemplate为 aContextMenuService.ContextMenu并且没有实际内容。您实际上需要在那里显示一些内容。另外,你有清单中的任何项目吗?

移动ContextMenuService.ContextMenu一个主模板 - 目前您正在拆分它(出于未知原因)。删除控件本身DataTemplate中的声明ListBox并使用您的预定义样式。

于 2013-02-19T20:17:47.723 回答