2011-12-14 33 views
1

我想在contextMenu中禁用一些menuItem,但不是全部。禁用Windows Phone工具箱中的MenuItem

<tk:ContextMenuService.ContextMenu> 
          <tk:ContextMenu Name="optionMenu"> 

           <tk:MenuItem Header="Move to Favorite" Name="moveToFav" Click="moveToFav_Click" /> 
           <tk:MenuItem Header="Copy to Favorite" Name="copyToFav" Click="copyToFav_Click" /> 
           <tk:MenuItem Header="Set as Folder Front" Name="setFront" Click="setFront_Click" /> 
           <tk:MenuItem Header="Delete" Name="delete" Click="delete_Click" /> 
          </tk:ContextMenu> 
         </tk:ContextMenuService.ContextMenu> 

例如,我想禁用moveToFav,copyToFav菜單項,我嘗試

moveToFav.isEnabled = false; copyToFav.isEnable = false; 

但是因爲編譯器說moveToFav不會在當前的背景下存在它沒有工作。

任何幫助?

回答

2

很好,我決定做以下

<tk:ContextMenuService.ContextMenu> 
          <tk:ContextMenu x:Name="optionMenu" > 

           <tk:MenuItem Header="Move to Favorite" x:Name="moveToFav" Click="moveToFav_Click" Loaded="moveToFav_Loaded" /> 
           <tk:MenuItem Header="Copy to Favorite" Name="copyToFav" Click="copyToFav_Click" Loaded="copyToFav_Loaded" /> 
           <tk:MenuItem Header="Set as Folder Front" Name="setFront" Click="setFront_Click" Loaded="setFront_Loaded" /> 
           <tk:MenuItem Header="Delete" Name="delete" Click="delete_Click" /> 
          </tk:ContextMenu> 
         </tk:ContextMenuService.ContextMenu> 

代碼:

private void moveToFav_Loaded(object sender, RoutedEventArgs e) 
    { 
     if (condition) 
      (sender as MenuItem).IsEnabled = false; 
    } 

    private void copyToFav_Loaded(object sender, RoutedEventArgs e) 
    { 
     if (condition) 
      (sender as MenuItem).IsEnabled = false; 
    } 

它並不完美,但它的作品

+0

很好的例子,謝謝! – 2015-01-20 11:26:18

相關問題