public TreeNode DeviceInfoToTreeNode(ZappSpy.UpnpDeviceInfo aDeviceInfo) { return(new TreeNode( aDeviceInfo.FriendlyName, ( from service in aDeviceInfo.Services select ServiceInfoToTreeNode(service) ).Concat( from device in aDeviceInfo.EmbeddedDevices select DeviceInfoToTreeNode(device) ).ToArray()) { Name = aDeviceInfo.UDN, Tag = aDeviceInfo, ContextMenuStrip = ContextMenu }); }
void iContextMenu_Opening(object sender, CancelEventArgs e) { // Populate the context menu appropriate to whatever was // clicked on, or cancel it if the node doesn't have any // actions. iContextMenu.Items.Clear(); e.Cancel = false; object nodeTag = iDeviceTreeView.SelectedNode.Tag; ZappSpy.UpnpServiceInfo serviceInfo = nodeTag as ZappSpy.UpnpServiceInfo; if (serviceInfo != null) { iContextMenu.Items.Add( new ToolStripMenuItem( "Show Service XML", null, (aSender, aE) => { var form = new ShowXmlForm(); form.XmlContent = serviceInfo.DescriptionXml; form.Text = serviceInfo.ServiceId + " - Service XML"; form.Show(); })); return; } ZappSpy.UpnpDeviceInfo deviceInfo = nodeTag as ZappSpy.UpnpDeviceInfo; if (deviceInfo != null) { iContextMenu.Items.Add( new ToolStripMenuItem( "Show Device XML", null, (aSender, aE) => { var form = new ShowXmlForm(); form.XmlContent = deviceInfo.DeviceXml; form.Text = deviceInfo.FriendlyName + " - Device XML"; form.Show(); })); return; } e.Cancel = true; return; }