Tuesday 15 September 2015

wpf - Same context menu displayed for TreeViewItem -



wpf - Same context menu displayed for TreeViewItem -

i have wpf treeview , of treeviewitems have context menu. example, root , node 2 not have context menu, node 1 does. after window loaded, when right click on node 2 or root first time don't see context menu , upon clicking on node 1, context menu displayed, far good. when click on node 2, seeing context menu, not assigning context menu 'node 2' treeviewitem.

event:

<treeview.itemcontainerstyle> <style targettype="treeviewitem"> <setter property="isexpanded" value="true" /> <eventsetter event="previewmouserightbuttondown" handler="onpreviewmouserightbuttondown" /> </style> </treeview.itemcontainerstyle>

event handler:

private void onpreviewmouserightbuttondown(object sender, mousebuttoneventargs e) { var obj = e.originalsource dependencyobject; var item = getdependencyobjectfromvisualtree(obj, typeof(treeviewitem)) treeviewitem; if (item == null) return; item.focus(); item.isselected = true; var selectedelement = (xmlelement)item.header; string type = selectedelement.getattribute("type"); if (type.tolower().trim() == "node 1") { var menuitem1 = new menuitem(); menuitem1.header = "new..."; menuitem1.width = double.nan; var menuitem2 = new menuitem(); menuitem2.header = "open..."; var menu = new contextmenu() { }; menu.items.add(menuitem1); menu.items.add(menuitem2); (sender treeviewitem).contextmenu = menu; } else { (sender treeviewitem).contextmenu = null; } e.handled = true; }

i tried assigning null context menu, no use. when debug, see no context menu beingness assigned treeviewitem, displayed.

wpf treeview

No comments:

Post a Comment