0

これは Windows Phone 7.5 用です。

ピボット項目に基づいてコンテキスト メニューからメニュー項目を削除できません。ピボット アイテムが 3 つあり、カスタム アイテムをコンテキスト メニューに表示する必要があります。

現在のピボット項目をキャプチャするのに役立つ適切なイベントを見つけようとしており、それに基づいてコンテキスト メニュー オプションを表示したいと考えています。

更新 #1:

Xaml マークアップ:

 <controls:PivotItem x:Name="HighPivotItem" Header="high">
        <toolkit:ContextMenuService.ContextMenu>
            <toolkit:ContextMenu Opened="ContextMenu_Opened" 
                           Closed="ContextMenu_Closed">
                <toolkit:MenuItem Header="mark as done" Click="MarkMenuItem_Click"/>
                <toolkit:MenuItem Header="edit" Click="EditMenuItem_Click"/>
                <toolkit:MenuItem Header="delete" Click="DeleteMenuItem_Click"/>
            </toolkit:ContextMenu>
        </toolkit:ContextMenuService.ContextMenu>
        <Grid>
            <TextBlock x:Name="HighTextBlock" Text=""
      Visibility="Collapsed" Margin="22,17,0,0"
 Style="{StaticResource PhoneTextGroupHeaderStyle}" />

            <ListBox x:Name="HighListBox" 
             ItemTemplate="{StaticResource DataTemplate}"
             SelectionChanged="ListBox_SelectionChanged" />
        </Grid>
    </controls:PivotItem>

私のイベントのコードは次のとおりです。

void MarkMenuItem_Click(object sender, RoutedEventArgs e)
{
  Task task = (sender as MenuItem).DataContext as Task;

  // Move from the task list to the done list
  Settings.TaskList.Value.Remove(task);
  Settings.DoneList.Value.Add(task);

  RefreshLists();
}
4

1 に答える 1

1

ピボット アイテムごとにコンテキスト メニューを設計する必要があります。

        <controls:Pivot Title="Pivot">
            <controls:PivotItem Header="one" DataContext="{Binding Task}">
                <!-- Stuff for pivot ONE -->
                <toolkit:ContextMenuService.ContextMenu>
                    <toolkit:ContextMenu >
                        <toolkit:MenuItem Header="Menu for both"/>
                        <toolkit:MenuItem Header="Menu for item ONE"/>
                    </toolkit:ContextMenu>
                </toolkit:ContextMenuService.ContextMenu>
            </controls:PivotItem>
            <controls:PivotItem Header="two">
                <!-- Stuff for pivot TWO -->
                <toolkit:ContextMenuService.ContextMenu>
                    <toolkit:ContextMenu >
                        <toolkit:MenuItem Header="Menu for both"/>
                        <toolkit:MenuItem Header="Menu for item TWO"/>
                    </toolkit:ContextMenu>
                </toolkit:ContextMenuService.ContextMenu>
            </controls:PivotItem>
        </controls:Pivot>

メニューは、リストボックスのデータ テンプレートまたは個々の項目に配置できます。

上記の例では、ページにプロパティ "Task" を持つ DataContext があることを前提としています。

public MainPage()
{
    this.DataContext = new ViewModel { Task = new Task() };
    InitializeComponent();
}
于 2012-05-18T06:20:06.050 に答える