2012-06-18 61 views
1

我想要什麼
從後面的代碼更改運行時數據模式中的上下文菜單的屬性(例如背景)。如何在WP7的數據模板中更改contextmenu的屬性?

什麼是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> 

回答

1

添加​​處理程序myMenu,並且在處理申報var myMenu = (ContextMenu)sender;

由於myMenu位於DataTemplate中,並且是用於創建對象的模板,而不是實際在頁面上使用的實例,因此不會爲其自動生成字段。

+0

當我輸入「我的」時,智能感知不會爲我顯示「myMenu」。我怎樣才能訪問它?我認爲原因是因爲它在一個數據模板中。 –

+0

我沒有注意到它在DataTemplate中。我已經修改了我的答案。 –

+0

這是一個非常有趣的解決方案-_- –

相關問題