private void AddButton_Click(object sender, RoutedEventArgs e) { if (ViewComboBox.SelectedItem == null) { return; } TreeViewItem selectedTreeViewItem = null; IQueryPanel masterQueryPanel = null; Guid masterViewRelationID = Guid.Empty; if (ViewRelationsTreeView.SelectedItem != null) { selectedTreeViewItem = (TreeViewItem)ViewRelationsTreeView.SelectedItem; Guid detailQueryPanelID = ((ViewRelation)selectedTreeViewItem.Tag).DetailQueryPanelID; masterViewRelationID = ((ViewRelation)selectedTreeViewItem.Tag).ID; masterQueryPanel = ApplicationContext.Current.SPCamlStudio.QueriesPanel.GetQueryPanel(detailQueryPanelID); //masterQueryPanel = (IQueryPanel)selectedTreeViewItem.Tag; } ComboBoxItem selectedComboBoxItem = (ComboBoxItem)ViewComboBox.SelectedItem; IQueryPanel detailQueryPanel = (IQueryPanel)selectedComboBoxItem.Tag; ViewRelation viewRelation = ViewRelation.NewViewRelation(); viewRelation.MasterViewRelationID = masterViewRelationID; viewRelation.DetailQueryPanelID = detailQueryPanel.ID; viewRelation.Name = detailQueryPanel.FileName; viewRelation.DetailSiteUrl = detailQueryPanel.AttachedObject.GetWebUrl(); viewRelation.DetailListName = detailQueryPanel.AttachedObject.GetListName(); if (selectedComboBoxItem.Parent == null) { viewRelation.IsRoot = true; } TreeViewItem newTreeViewItem = new TreeViewItem() { Header = viewRelation.Name, Tag = viewRelation }; if (selectedTreeViewItem == null) { ViewRelationsTreeView.Items.Add(newTreeViewItem); } else { ViewRelationForm viewRelationForm = new ViewRelationForm(); viewRelationForm.Initialize(masterQueryPanel, detailQueryPanel); viewRelationForm.Tag = viewRelation; if (viewRelationForm.ShowDialog(this.ParentWindow, "View Relation") == true) { selectedTreeViewItem.Items.Add(newTreeViewItem); } } }