0

我有一个使用 XAML/C# 的 Windows Phone 8 应用程序。我的应用程序有一个ItemsControl依赖于数据模板的应用程序。我的DataTemplate样子如下:

<DataTemplate x:Key="myTemplate">
  <Grid Margin="0,0,0,8">
    <Grid.ColumnDefinitions>
      <ColumnDefinition />
      <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>

    <Grid VerticalAlignment="Center">
      <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
      </Grid.RowDefinitions>

      <TextBlock Text="{Binding DisplayName}" TextWrapping="NoWrap" Style="{StaticResource PhoneTextLargeStyle}" TextTrimming="WordEllipsis" >
        <toolkit:ContextMenuService.ContextMenu>
          <toolkit:ContextMenu>
            <toolkit:MenuItem x:Name="customerMenuItem" Foreground="White" Header="View Customer Profile" Click="customerMenuItem_Click" Tag="{Binding Path=CustomerName}" />
          </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
      </TextBlock>
      <TextBlock Text="{Binding Summary}" TextWrapping="NoWrap" Grid.Row="1" Style="{StaticResource PhoneTextSmallStyle}" />
    </Grid>

    <StackPanel Orientation="Horizontal" Grid.Column="1"><!-- Stuff here --></StackPanel>
  </Grid>
</DataTemplate>

DataTemplate在我的 XAML 的主要部分中被引用,如下所示:

<Grid x:Name="ContentPanel" Grid.Row="1" Grid.ColumnSpan="2" Margin="12,0,12,0">
  <ScrollViewer>
    <ItemsControl x:Name="myItemsControl" ItemTemplate="{StaticResource myTemplate}" ItemsSource="{Binding Customers}">
      <ItemsControl.ItemsPanel>
        <ItemsPanelTemplate>
          <StackPanel Orientation="Vertical" />
        </ItemsPanelTemplate>
      </ItemsControl.ItemsPanel>
    </ItemsControl>
  </ScrollViewer>
</Grid>

请注意,“工具包”命名空间来自 clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone.Controls.Toolkit。当我将手指(或鼠标)放在 上时TextBlock,会出现一个上下文菜单。但是,我从来没有看到“查看客户资料”这个词。我只看到一个代表上下文菜单本身的块框。我知道该项目在那里。我知道是因为customerMenuItem_Click事件成功触发。我MessageBox在那里有一个显示标签值的东西。该值始终是正确的。出于某种原因,虽然菜单项文本没有出现。我究竟做错了什么?

4

1 回答 1

0

你把Foreground = "White". 上下文菜单位于白色背景上。这就是您看不到菜单项的原因。

于 2014-05-03T04:54:29.587 回答