Silverlight 4.0 Silverlight控件';s的名字不是';在代码隐藏中不可用

Silverlight 4.0 Silverlight控件';s的名字不是';在代码隐藏中不可用,silverlight-4.0,contextmenu,code-behind,Silverlight 4.0,Contextmenu,Code Behind,我有以下XAML: <controls:ContextMenuService.ContextMenu> <controls:ContextMenu Height="Auto" x:Name="contextMenu"> <controls:MenuItem x:Name="AddMenuItem" Header="Add document"

我有以下XAML:

<controls:ContextMenuService.ContextMenu>
         <controls:ContextMenu Height="Auto" x:Name="contextMenu">
                   <controls:MenuItem x:Name="AddMenuItem" Header="Add document" 
                                      IsEnabled="True" Click="AddMenuItem_Click">
                   </controls:MenuItem>
            ...
但它总是返回null

我已经检查了构建操作-它被设置为第页


如何修复它?

我认为您必须使用
ContextMenuService
来获取对象的ContextMenu。ContextMenuService提供返回指定对象的ContextMenu的方法
GetContextMenu(DependencyObject)

因此,在你的情况下,你需要写:

DependencyObject objectWithContextMenu = // Control that has a ContextMenu
ContextMenu menu = ContextMenuService.GetContextMenu(objectWithContextMenu);

我认为您必须使用
ContextMenuService
来获取对象的ContextMenu。ContextMenuService提供返回指定对象的ContextMenu的方法
GetContextMenu(DependencyObject)

因此,在你的情况下,你需要写:

DependencyObject objectWithContextMenu = // Control that has a ContextMenu
ContextMenu menu = ContextMenuService.GetContextMenu(objectWithContextMenu);

不幸的是,具有ContextMenu的控件在代码隐藏中不可用。不幸的是,具有ContextMenu的控件在代码隐藏中也不可用