我正在尝试让上下文菜单显示字符串列表。该应用程序包含可以编辑,删除和添加到组的人员的数据网格。我有一个类StudentGroup,可以添加一个人不同的组(StudentGroup的一个成员是Name)。 ViewModel检索完整的组列表并将其放入Observable Collection中。我正在尝试使上下文菜单工作,以便每当用户右键单击并将鼠标悬停在添加用户上时 - >它会打开一个包含Observable Collections的Name字符串的侧面菜单项。
到目前为止,这是我在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);
}
}
答案 0 :(得分:1)
这应该有效
<MenuItem Header="Add User to" ItemsSource="{Binding Entries}">
<MenuItem.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Name}"></MenuItem>
</DataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>