禁用Windows Phone工具包中的MenuItem

时间:2011-12-14 11:26:44

标签: c# contextmenu windows-phone-7.1 toolkit

我想在contextMenu中禁用一些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 MenuItem,我试着

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

但它没有用,因为编译器说当前上下文中不存在moveToFav。

任何帮助?

1 个答案:

答案 0 :(得分: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;
    }

它并不完美,但它有效