ContextMenu中的XAML和绑定子菜单项?

mut*_*tex 1 wpf xaml wpf-controls

我在Datagrid上定义了ContextMenu,但是想要将子菜单项绑定到我的viewmodel上的集合.任何人都可以建议如何做到这一点?

以下是我想要实现的一个简单示例,但我希望"Test1","Test2"来自我的viewmodel上的集合,而不是硬编码.我知道如何将我的集合绑定到整个ContextMenu,但不知道如何将它绑定到只有一个子菜单...

<ContextMenu>
    <MenuItem Header="Add to">
        <MenuItem Header="Test1" />
        <MenuItem Header="Test2" />
    </MenuItem>
    <MenuItem Header="Remove from All" />
</ContextMenu>
Run Code Online (Sandbox Code Playgroud)

我正在使用3.5 SP1和WPF工具包.

mut*_*tex 6

我猜我应该尝试更多.事实证明这相对简单:

<my:DataGrid.ContextMenu>
    <ContextMenu>
        <MenuItem Header="Add to" ItemsSource="{Binding MyItems}">
            <MenuItem.ItemTemplate>
                <DataTemplate>
                    <MenuItem CommandTarget="{Binding}" Click="AddClick">
                        <MenuItem.Header>
                            <TextBlock>
                            <TextBlock.Text><Binding StringFormat="Add to {0}" /></TextBlock.Text>
                            </TextBlock>
                        </MenuItem.Header>
                    </MenuItem>
                </DataTemplate>
            </MenuItem.ItemTemplate>
        </MenuItem>
        <MenuItem Header="Remove from All" />
    </ContextMenu>
</my:DataGrid.ContextMenu>
Run Code Online (Sandbox Code Playgroud)