WPF 4.0绑定DataGrid上的ContextMenu

| 我在尝试动态绑定DataGrid上的ContextMenu时遇到了麻烦。 DataGrid绑定到一个效果很好的对象列表:
<DataGrid ItemsSource=\"{Binding DataGridItems}\">
对于每个DataGridItem对象,我都有一个暴露在属性上的MenuItems列表,我想使用该属性绑定到ContextMenu。 我尝试了以下方法,但我想缺少一些东西:
<DataGrid ItemsSource=\"{Binding DataGridItems}\">
     <DataGrid.ContextMenu>
          <ContextMenu ItemsSource=\"{Binding ContextMenuItems}\" >
               <MenuItem Header=\"{Binding Name}\" Command=\"{Binding OnClick}\"></MenuItem>
          </ContextMenu>
     </DataGrid.ContextMenu>
 <DataGrid>
public class DataGridItem
{
    public ObservableCollection<ContextMenuItem> ContextMenuItems
    {
        get { return _contextMenuItems; }
    }
}
任何帮助或指导将不胜感激。     
已邀请:
这就是我最终解决它的方式:
<StackPanel.ContextMenu>
<ContextMenu ItemsSource=\"{Binding ContextMenu}\">
    <ContextMenu.ItemContainerStyle>
        <Style TargetType=\"MenuItem\">
            <Setter Property=\"Command\" Value=\"{Binding OnClick}\" />
            <Setter Property=\"Icon\">
                <Setter.Value>
                    <Image Source=\"{Binding ImageName}\"></Image>
                </Setter.Value>
            </Setter>
        </Style>
    </ContextMenu.ItemContainerStyle>
    <ContextMenu.ItemTemplate>
        <HierarchicalDataTemplate DataType=\"{x:Type ContextMenu:ContextMenuItem}\" ItemsSource=\"{Binding MenuItems}\">
            <TextBlock Text=\"{Binding Name}\"></TextBlock>
        </HierarchicalDataTemplate>
    </ContextMenu.ItemTemplate>
</ContextMenu>
    
我相信本教程描述了您的问题,但实际上您必须这样做:
<ContextMenu DataContext=\"{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}\"
    ItemsSource=\"{Binding ContextMenuItems}\" />
    

要回复问题请先登录注册