0
我正在使用Silverlight工具包中的ContextMenu控件,我想定义xaml中的contextmenu,并将其“添加”到我在代码中创建的控件中。在XAML中创建ContextMenu,并将其添加到Code中的Item中?
我正在使用Telerik Outlook Radbar,它包含Telerik RadTreeView。我目前通过Converter类在代码中创建RadTreeView,但我希望每个treeviewitem都有一个右键单击菜单。
有没有办法将ContextMenu定义为DataTemplate,并设置RadTreeView使用它?
这是我,但我希望它不工作(我得到默认的Silverlight右键菜单)
XAML
<DataTemplate x:Key="TreeViewItemTemplate">
<controlsToolkit:ContextMenuService.ContextMenu>
<controlsToolkit:ContextMenu>
<controlsToolkit:MenuItem Header="New Folder"
Click="NewFolderMenu_Click"/>
</controlsToolkit:ContextMenu>
</controlsToolkit:ContextMenuService.ContextMenu>
</DataTemplate>
CS
var t = new RadTreeView();
t.IsLineEnabled = true;
t.IsDragDropEnabled = true;
t.ItemTemplate = (DataTemplate) MailboxView.MailboxResources["TreeViewItemTemplate"];
感谢您的回答。如何将XAML中的ContextMenu附加到在C#中生成的一组项目中?我必须在代码中执行此操作吗? – Alan 2011-04-17 17:05:43
您需要为一个项目定义一个模板(您可以为已有的DataTemplate添加可见的内容),然后将ContextMenuService.ContextMenu属性附加到模板的根元素。另外,为了让TreeView看起来像树,你应该使用HierarchicalDataTemplate而不是DataTemplate。 – 2011-04-17 17:45:28