5

我正在尝试使上下文菜单显示字符串列表。该应用程序包含一个可以编辑、删除和添加到组的人员的数据网格。我有一个 StudentGroup 类,它们是可以添加一个人的不同组(StudentGroup 的成员之一是名称)。ViewModel 检索组的完整列表并将其放入 Observable 集合中。我正在尝试使上下文菜单工作,以便每当用户右键单击并将鼠标悬停在 Add User to -> 它打开一个包含 Observable Collections 名称字符串的侧菜单项。

这是我迄今为止通过在 StackOverflow 上查找类似问题所尝试的方法,但它还没有为我工作。

XAML:

<DataGrid.ContextMenu>
    <ContextMenu AllowDrop="True" ItemsSource="{Binding Entries}">
        <MenuItem Header="Edit" />
        <MenuItem Header="Delete"/>
        <MenuItem Header="Add User to">
            <MenuItem.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" />
                </DataTemplate>
            </MenuItem.ItemTemplate>
        </MenuItem>
        </ContextMenu>
</DataGrid.ContextMenu>

视图背后的 XAML 代码:

private TitleViewMode TVM=new TitleViewMode;
public Welcome()
    {
        InitializeComponent();
        _grid1.ContextMenu.DataContext = TVM;
    }

视图模型

class TitleViewModel
{
    public ObservableCollection<StudentGroup> Entries {get;set;}
    private List<StudentGroup> sg1 { get; set;}
    public TitletViewModel()
    {
        sg1 = GetGroups();
        Entries = new ObservableCollection<StudentGroup>(sg1);
    }

}
4

1 回答 1

3

这应该工作

<MenuItem Header="Add User to" ItemsSource="{Binding Entries}">
    <MenuItem.ItemTemplate>
        <DataTemplate>
            <MenuItem Header="{Binding Name}"></MenuItem>
        </DataTemplate>
     </MenuItem.ItemTemplate>
</MenuItem>
于 2013-08-16T01:21:57.780 回答