1

私が欲しい
のは、ランタイムのデータテンプレートのコンテキストメニューのプロパティ(背景など)をコードビハインドから変更することです。

XAML とは

<DataTemplate x:Key="ListsDataTemplate">
    <StackPanel x:Name="stackPanel" Margin="0,0,0,10">
        <toolkit:ContextMenuService.ContextMenu> 
            <toolkit:ContextMenu x:Name="myMenu" IsFadeEnabled="False" IsZoomEnabled="False">
                        <toolkit:MenuItem x:Name="edit" Header="{Binding LocalStrings.bt_menu_Edit, Source={StaticResource LocalizedResources}}" Click="menuItemEdit_Click" />
                        <toolkit:MenuItem x:Name="postpone" Header="{Binding LocalStrings.bt_menu_Postpone, Source={StaticResource LocalizedResources}}" Click="menuItemPostpone_Click" />
                        <toolkit:MenuItem x:Name="email" Header="{Binding LocalStrings.bt_menu_Email, Source={StaticResource LocalizedResources}}" Click="menuItemEmail_Click" />
                        <toolkit:MenuItem x:Name="sms" Header="{Binding LocalStrings.bt_menu_Sms, Source={StaticResource LocalizedResources}}" Click="menuItemSMS_Click" />                        
                </toolkit:ContextMenu> 
        </toolkit:ContextMenuService.ContextMenu>

        <ListBox    
            HorizontalAlignment="Left" 
            DataContext="{Binding}" 
            ItemTemplate="{StaticResource ListsDataTemplate}" 
            VerticalAlignment="Top" 
            Width="432" 
            Margin="0,81,0,0" 
            x:Name="myListBox">
        </ListBox>
4

1 に答える 1

1

Loaded="myMenu_Loaded"にハンドラを追加しmyMenu、そのハンドラで を宣言しvar myMenu = (ContextMenu)sender;ます。

myMenu は DataTemplate 内にあり、ページで実際に使用されるインスタンスではなく、オブジェクトを作成するためのテンプレートであるため、フィールドは自動生成されません。

于 2012-06-18T13:27:03.830 に答える