コード例 #1
0
        private void closeTab()
        {
            int indexItem = MainWindow.tabControl.SelectedIndex;

            TabsViewModel.RemoveTabItem(indexItem);
            listFileName.RemoveAt(indexItem);
            index--;
        }
コード例 #2
0
        private void OpenFile()
        {
            XmlDocument    doc             = new XmlDocument();
            Stream         myStream        = null;
            OpenFileDialog openFileDialog1 = new OpenFileDialog();
            ObservableCollection <TreeItemModel> listFrame = new ObservableCollection <TreeItemModel>();

            openFileDialog1.InitialDirectory = @"C:\Users\Александр\Documents\Visual Studio 2015\Projects\SPP\Lab2\TracerOnWinForms\TracerOnWinForms\bin\Debug";
            openFileDialog1.Filter           = "XML files (*.xml)|*.xml";
            openFileDialog1.RestoreDirectory = true;
            if (openFileDialog1.ShowDialog() == true)
            {
                try
                {
                    if ((myStream = openFileDialog1.OpenFile()) != null)
                    {
                        using (myStream)
                        {
                            doc.Load(openFileDialog1.FileName);
                            fileName = openFileDialog1.FileName;
                        }

                        if (!listFileName.Contains(fileName))
                        {
                            int nodeId = -1;
                            listFileName.Add(fileName);
                            foreach (XmlNode node in doc.SelectNodes("root"))
                            {
                                frameList      = new Model.Frame();
                                frameList.name = "root";
                                parse(node, ref frameList, -1, ref nodeId);
                            }

                            index++;

                            TreeItemModel tiModel = new TreeItemModel();
                            TreeItemModel tempTIModel;
                            for (int i = 0; i < frameList.childFrame.Length - 1; i++)
                            {
                                tempTIModel       = new TreeItemModel();
                                tempTIModel.Title = frameList.childFrame[i].text;
                                listFrame.Add(tempTIModel);
                                listFrame.Last().ItemName    = frameList.childFrame[i].name;
                                listFrame.Last().Time        = frameList.childFrame[i].attrTime;
                                listFrame.Last().Name        = frameList.childFrame[i].attrName;
                                listFrame.Last().Id          = frameList.childFrame[i].attrId;
                                listFrame.Last().Package     = frameList.childFrame[i].attrPackage;
                                listFrame.Last().ParamsCount = frameList.childFrame[i].attrParamsCount;
                                listFrame.Last().Title       = frameList.childFrame[i].name;
                                listFrame.Last().ThreadId    = frameList.childFrame[i].threadId;
                                listFrame.Last().Title      += addAttribute(frameList.childFrame[i]);

                                tiModel = listFrame.Last();
                                buildTreeView(frameList.childFrame[i], ref tiModel);
                            }

                            TabsViewModel.AddNewTabItem(openFileDialog1.FileName, listFrame);
                            TabsViewModel.Tabs.Last().IsSelected = true;
                        }
                        else
                        {
                            MessageBox.Show("File " + Path.GetFileName(fileName) + " is alredy open!");
                            int ind = listFileName.IndexOf(fileName);
                            TabsViewModel.Tabs[ind].IsSelected = true;
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Error: Could not read file from disk. Original error: " + ex.Message);
                }
            }
        }