private void delete_Item(object s, RoutedEventArgs e) { try { Information info; info.id = GraphReader.Element(Kernel.getElement(current.Id)).info.id; info.name = GraphReader.Element(Kernel.getElement(current.Id)).info.name; info.type = -1; info.shortcut = ""; if (task.ContainsKey(info.id)) { task.Hide(info.id); } Kernel.Update(info); if (state == State.Desktop) { desktop.Clean(); desktop.GenerateGraph(); } else { middle.hideCurrent(); middle.GenerateGraph(middle.getCurrent(), GraphReader.Element(Kernel.getElement(middle.getCurrent())).son); middle.refresh(); } } catch { MessageBox.Show("Veuillez selectionnez un element "); } }
private void OnPrev(int i) { if (state == State.Middle) { var parent = GraphReader.Element(Kernel.getElement(middle.getCurrent())).parent; if (parent != IntPtr.Zero) { var element = GraphReader.Element(parent).info; current = null; middle.current = null; var elementData = Kernel.getElement(element.id); var son = Kernel.getSon(elementData); middle.hideCurrent(); if (task.ContainsKey(middle.getCurrent())) { task.setKey(middle.getCurrent(), element.id); } this.middle.setCurrent(element.id); this.middle.GenerateGraph(element.id, son); middle.setTitle(element.id); } else { middle.hideMiddle(); middle.setCurrent(""); state = State.Desktop; desktop.Generate(); } } }
private void copyElement(IntPtr ptr, IntPtr data, int type) { if (data != IntPtr.Zero && ptr != IntPtr.Zero) { if (GraphReader.Element(data).next != IntPtr.Zero) { Information info; info.name = GraphReader.Element(GraphReader.Element(data).next).info.name; info.type = GraphReader.Element(GraphReader.Element(data).next).info.type; info.id = GetUniqueId(); info.shortcut = ""; Kernel.addGraph(ptr, info, 0); copyElement(GraphReader.Element(ptr).next, GraphReader.Element(data).next, 0); } if (GraphReader.Element(data).son != IntPtr.Zero) { Information info; info.name = GraphReader.Element(GraphReader.Element(data).son).info.name; info.type = GraphReader.Element(GraphReader.Element(data).son).info.type; info.id = GetUniqueId(); info.shortcut = ""; Kernel.addGraph(ptr, info, 1); copyElement(GraphReader.Element(ptr).son, GraphReader.Element(data).son, 1); } } }
public static IntPtr getElement(string Id) { IntPtr ptr = IntPtr.Zero; GraphReader.getPtr(data, Id, ref ptr); return(ptr); }
public void ReadFromTextFile_MatchExpected() { // arrange bool isMatch = true; string path = "inputdata.txt"; Graph expected = Expected_TextFileGraph(); Graph _sut = GraphReader.ReadFromTextFile(path); // act if (expected.AdjacencyList.Count != _sut.AdjacencyList.Count) { Assert.True(false); return; } foreach (var station in expected.AdjacencyList) { if (!_sut.AdjacencyList.ContainsKey(station.Key) || station.Value.Count != _sut.AdjacencyList[station.Key].Count) { isMatch = false; break; } foreach (var neighbour in station.Value) { if (!_sut.AdjacencyList[station.Key].ContainsKey(neighbour.Key) || _sut.AdjacencyList[station.Key][neighbour.Key] != neighbour.Value) { isMatch = false; break; } } } // assert Assert.True(isMatch); }
public void ReadFromTextFile_FileDoesNotExist_ThrowsFileNotFoundException() { // arrange string path = "doesnotexist.txt"; // assert Assert.Throws <FileNotFoundException>(() => GraphReader.ReadFromTextFile(path)); }
public void ReadFromTextFile_WithBadData_ThrowsFormatException() { // arrange string path = "bad-data.txt"; // assert Assert.Throws <FormatException>(() => GraphReader.ReadFromTextFile(path)); }
private static void TransitiveReduction(string path) { var graph = GraphReader.ReadGraphFromJson(path); var reducedGraph = Reduction.DoTransitiveReduction(graph); Console.WriteLine(graph.MatrixToString()); Console.WriteLine("Transitive reduction:"); Console.WriteLine(reducedGraph.MatrixToString()); }
public void enter_search(string name) { var infos = new List <Information>(); GraphReader.getPtrName(Kernel.getData(), ref infos, name); var search = new SearchView(infos, this); search.Show(); }
public SearchView(List <Information> info, FileManager.Graphics.Window window) { InitializeComponent(); this.window = window; foreach (var result in info.Where(x => x.type != -1).ToList()) { var elem = new Pair(); elem.name = result.name; elem.type = Configuration.types[result.type]; elem.id = result.id; elem.typeid = result.type; List <Information> path = new List <Information>(); GraphReader.getPtrParent(Kernel.getElement(elem.id), ref path); path.Reverse(); string pathstr = ""; int count = 0; foreach (var p in path) { count++; if (count == path.Count) { if (count == 1) { pathstr += $"{p.name.ToUpper()} :\\"; } else { pathstr += $"{p.name}"; } } else { if (count == 1) { pathstr += $"{p.name.ToUpper()} :\\"; } else { pathstr += $"{p.name} > "; } } } elem.path = pathstr; liste.Items.Add(elem); } liste.MouseDoubleClick += (e, v) => { var element = (Pair)liste.SelectedItem; if (element.typeid != 4) { window.open_id(element.id); } }; }
private void p_Item(object sender, RoutedEventArgs e) { string str = ""; str += $"Nombres éléments : {GraphReader.Count(Kernel.getData())} \n"; str += $"Nombres réprértoires : {GraphReader.Count(Kernel.getData(),0)} \n"; str += $"Nombres dossiers : {GraphReader.Count(Kernel.getData(), 1)} \n"; str += $"Nombres fichiers : {GraphReader.Count(Kernel.getData(), 4)} \n"; MessageBox.Show(str); }
public static List <Information> getDesktop() { List <Information> infos = new List <Information>(); var ptr = data; while (ptr != IntPtr.Zero && ptr != null) { var elem = GraphReader.Element(ptr); infos.Add(elem.info); ptr = elem.next; } return(infos); }
private static void TransitiveClosure(string path) { var graph = GraphReader.ReadGraphFromJson(path); var closedGraphWithDfs = Closure.DoTransitiveClosureWithDfs(graph); var closedGraphWithFloydWarshall = Closure.DoTransitiveClosureWithFloydWarshall(graph); Console.WriteLine("Graph:"); Console.WriteLine(graph.MatrixToString()); Console.WriteLine("Transitive closure with DFS:"); Console.WriteLine(closedGraphWithDfs.MatrixToString()); Console.WriteLine("Transitive closure with Floyd-Warshall:"); Console.WriteLine(closedGraphWithFloydWarshall.MatrixToString()); }
private void trie_Item(object sender, RoutedEventArgs e) { if (state == State.Desktop) { Api.sorts(Kernel.getData()); desktop.Clean(); desktop.GenerateGraph(); } else { Api.sorts(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son); middle.hideCurrent(); middle.GenerateGraph(middle.getCurrent(), GraphReader.Element(Kernel.getElement(middle.getCurrent())).son); } }
private void LoadButton_Click(object sender, EventArgs e) { G = GraphReader.read(Controls.Find("path", true)[0].Text); int n = G.GetVertices().Count(); for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { Controls.Find(i + "," + j, true)[0].Text = G.GetArrowWeight(i, j) + ""; } } loaded = true; }
public void InputFromFile(object sender, EventArgs e) { try { Graph = GraphReader.Read(PathToFile); } catch (ArgumentException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.Message); throw; } }
public void refresh() { this.Clear(); var all = new List <Information>(); GraphReader.getPtrParent(Kernel.getElement(middle.getCurrent()), ref all); all.Reverse(); foreach (var result in all) { count++; var lab = new Label(); if (count == all.Count) { if (count == 1) { lab.Content = $"{result.name.ToUpper()} :\\"; } else { lab.Content = $"{result.name}"; } } else { if (count == 1) { lab.Content = $"{result.name.ToUpper()} :\\"; } else { lab.Content = $"{result.name} > "; } } lab.FontSize = 14; lab.FontWeight = FontWeights.Medium; labels.Add(lab); lab.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); Rect measureRect = new Rect(lab.DesiredSize); lab.Arrange(measureRect); Canvas.SetTop(lab, y); Canvas.SetLeft(lab, x); canvas.Children.Add(lab); x += measureRect.Width - 5; } }
public void setTitle(string name) { if (title != null) { canvas.Children.Remove(title); } title = new Label(); title.FontSize = 15; title.FontWeight = FontWeights.Bold; var elem = GraphReader.Element(Kernel.getElement(this.currentElement)); title.Content = $"{Configuration.types[elem.info.type]} : {elem.info.name}"; Canvas.SetLeft(title, FileManager.Graphics.Window.Width / 2); Canvas.SetTop(title, 0); canvas.Children.Add(title); liste.refreshListe(); absorbance.refresh(); }
public void GenerateGraph(string id, IntPtr son) { if (!FileElements.ContainsKey(id)) { FileElements.Add(id, null); } FileElements[id] = new Tuple <int, int, List <MiddleElement> >(); FileElements[id].x = Configuration.startXMiddle; FileElements[id].y = Configuration.startYMiddle; FileElements[id].elements = new List <MiddleElement>(); foreach (var result in GraphReader.getElements(son)) { this.Add(result.id, result.type, result.name, result.shortcut); } liste.refreshListe(); absorbance.refresh(); }
private void rename_keyDown(object sender, KeyEventArgs e) { if (e.Key == Key.Enter) { if (rename != null) { if (state == State.Desktop) { if (rename.Text != "") { var ptr = Kernel.getElement(idRename); var info = GraphReader.Element(Kernel.getElement(idRename)).info; Information ninfo; ninfo.id = info.id; ninfo.name = desktop.nameValid(rename.Text); ninfo.type = info.type; ninfo.shortcut = info.shortcut; Api.setElement(ptr, ninfo); desktop.Contains(idRename).nameElement.label.Content = ninfo.name; desktop.Contains(idRename).nameElement.Name = ninfo.name; desktop.Contains(idRename).Enabled = true; } } else { var ptr = Kernel.getElement(idRename); var info = GraphReader.Element(Kernel.getElement(idRename)).info; Information ninfo; ninfo.id = info.id; ninfo.name = middle.nameValid(rename.Text); ninfo.type = info.type; ninfo.shortcut = info.shortcut; Api.setElement(ptr, ninfo); middle.First(idRename).nameElement.label.Content = ninfo.name; middle.First(idRename).nameElement.Name = ninfo.name; middle.First(idRename).Enabled = true; } canvas.Children.Remove(rename); } rename = null; } }
private void EnterPath_button_Click(object sender, EventArgs e) { OpenFileDialog OPF = new OpenFileDialog(); OPF.Filter = "Файлы txt|*.txt|Файлы cs|*.cs"; if (OPF.ShowDialog() == DialogResult.OK) { MessageBox.Show(OPF.FileName); } GraphReader reader = new GraphReader(OPF.FileName); Graph graph = reader.read(); reader.close(); TestData.Test(graph); str = TestData.S; Template template = new Template(str); template.Show(); }
private void past_shortcut_Item(object s, RoutedEventArgs e) { var element = GraphReader.Element(Kernel.getElement(copy.Id)); Information info; info.name = $"{element.info.name}"; info.type = element.info.type; info.id = GetUniqueId(); info.shortcut = copy.Id; if (state == State.Desktop) { info.name = desktop.nameValid(info.name); Kernel.addGraph(info, 0); desktop.Add(info.name, info.type, info.id, info.shortcut); } else { info.name = middle.nameValid(info.name); Kernel.addGraph(Kernel.getElement(middle.getCurrent()), info, 1); middle.Add(info.id, info.type, info.name, info.shortcut); } copy = null; }
public void Initialization() { this.loadMemory(); window.Initialization(disks, GraphReader.getElementList(data)); }
public void Click(int xmouse, int ymouse) { if (state == State.Desktop) { var element = desktop.Contains(xmouse, ymouse); if (element != null && restriction[element.Type]) { if (GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut != "") { string shortcut = GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut; element = desktop.First(shortcut); //then in middle if (element == null) { bool search = false; foreach (var result in middle.FileElements) { foreach (var req in result.Value.elements) { if (req.Id == shortcut) { element = req; search = true; } break; } if (search == true) { break; } } } } if (rename != null) { canvas.Children.Remove(rename); } desktop.Hide(); state = State.Middle; if (!task.ContainsKey(element.Id)) { task.addTask(element); } var elementData = Kernel.getElement(element.Id); var son = Kernel.getSon(elementData); this.middle.setCurrent(element.Id); this.middle.GenerateGraph(element.Id, son); this.middle.OnMiddle(4); middle.setTitle(element.Id); } } else { int type = -1; var element = middle.Contains(xmouse, ymouse, ref type); if (element != null && type > -1) { if (type == 0) // close { } else if (type == 1) { middle.hideMiddle(); middle.setCurrent(""); state = State.Desktop; desktop.Generate(); } else if (type == 2 && restriction[element.Type]) { if (rename != null) { canvas.Children.Remove(rename); } if (GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut != "") { string shortcut = GraphReader.Element(Kernel.getElement(element.Id)).info.shortcut; element = middle.First(shortcut); //then in dekstop if (element == null) { bool search = false; foreach (var result in middle.FileElements) { foreach (var req in result.Value.elements) { if (req.Id == shortcut) { element = req; search = true; } break; } if (search == true) { break; } } } } current = null; middle.current = null; var elementData = Kernel.getElement(element.Id); var son = Kernel.getSon(elementData); middle.hideCurrent(); if (task.ContainsKey(middle.getCurrent())) { task.setKey(middle.getCurrent(), element.Id); } this.middle.setCurrent(element.Id); this.middle.GenerateGraph(element.Id, son); middle.setTitle(element.Id); } } } }
private void past_Item(object s, RoutedEventArgs e) { if (state == State.Desktop) { if (copy != null) { var elem = GraphReader.Element(Kernel.getElement(copy.Id)); Information info; info.name = desktop.nameValid(elem.info.name); info.id = GetUniqueId(); info.type = elem.info.type; info.shortcut = ""; Kernel.addGraph(info, 0); if (GraphReader.Element(Kernel.getElement(copy.Id)).son != IntPtr.Zero) { var ptr = Kernel.getElement(info.id); Information infos; infos.name = GraphReader.Element(GraphReader.Element(Kernel.getElement(copy.Id)).son).info.name; infos.id = GetUniqueId(); infos.type = GraphReader.Element(GraphReader.Element(Kernel.getElement(copy.Id)).son).info.type; infos.shortcut = ""; Kernel.addGraph(ptr, infos, 1); copyElement(Kernel.getElement(infos.id), GraphReader.Element(Kernel.getElement(copy.Id)).son, 1); desktop.Clean(); desktop.GenerateGraph(); } else { desktop.Add(info.name, info.type, info.id); } copy = null; } } else { Graph elem; if (cut == null) { elem = GraphReader.Element(Kernel.getElement(copy.Id)); } else { elem = GraphReader.Element(Kernel.getElement(cut.Id)); } Information info; info.name = middle.nameValid(elem.info.name); info.id = GetUniqueId(); info.type = elem.info.type; info.shortcut = ""; if (cut == null) { if (desktop.First(copy.Id) == null) { Kernel.addGraph(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son, info, 0); if (copy != null) { if (GraphReader.Element(Kernel.getElement(copy.Id)).son == IntPtr.Zero) { middle.Add(info.id, info.type, info.name); } else { var ptr = Kernel.getElement(info.id); Information infos; infos.name = GraphReader.Element(GraphReader.Element(Kernel.getElement(copy.Id)).son).info.name; infos.id = GetUniqueId(); infos.type = GraphReader.Element(GraphReader.Element(Kernel.getElement(copy.Id)).son).info.type; infos.shortcut = ""; Kernel.addGraph(ptr, infos, 1); copyElement(Kernel.getElement(infos.id), GraphReader.Element(Kernel.getElement(copy.Id)).son, 1); middle.hideCurrent(); middle.GenerateGraph(middle.getCurrent(), (GraphReader.Element(Kernel.getElement(middle.getCurrent())).son)); middle.refresh(); } } } } else { if (desktop.First(cut.Id) == null) { Kernel.addGraph(Kernel.getElement(middle.getCurrent()), info, 1); if (GraphReader.Element(Kernel.getElement(cut.Id)).son == IntPtr.Zero) { middle.Add(info.id, info.type, info.name); } else { var ptr = Kernel.getElement(info.id); Information infos; infos.name = GraphReader.Element(GraphReader.Element(Kernel.getElement(cut.Id)).son).info.name; infos.id = GetUniqueId(); infos.type = GraphReader.Element(GraphReader.Element(Kernel.getElement(cut.Id)).son).info.type; infos.shortcut = ""; Kernel.addGraph(ptr, infos, 1); copyElement(Kernel.getElement(infos.id), GraphReader.Element(Kernel.getElement(cut.Id)).son, 1); middle.hideCurrent(); middle.GenerateGraph(middle.getCurrent(), GraphReader.Element(Kernel.getElement(middle.getCurrent())).son); } } } if (cut != null) { Information cutInfo; cutInfo.id = GraphReader.Element(Kernel.getElement(cut.Id)).info.id; cutInfo.name = GraphReader.Element(Kernel.getElement(cut.Id)).info.name; cutInfo.type = -1; cutInfo.shortcut = ""; if (task.ContainsKey(cutInfo.id)) { task.Hide(cutInfo.id); } Kernel.Update(cutInfo); //stupid code a lot of repeat current = null; middle.current = null; var elementData = Kernel.getElement(middle.getCurrent()); var son = Kernel.getSon(elementData); middle.hideCurrent(); if (task.ContainsKey(middle.getCurrent())) { task.setKey(middle.getCurrent(), middle.getCurrent()); } this.middle.setCurrent(middle.getCurrent()); this.middle.GenerateGraph(middle.getCurrent(), son); middle.setTitle(middle.getCurrent()); cut = null; } else { copy = null; } } }
private void deleteElement(IntPtr ptr) { deleteElement(GraphReader.Element(ptr).next); deleteElement(GraphReader.Element(ptr).son); Marshal.FreeHGlobal(ptr); }
public void refreshListe() { this.Clear(); var allelems = new Label(); allelems.Content = $"Nombres éléments(R)({GraphReader.Count(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son)}) : "; allelems.FontSize = 14; allelems.FontWeight = FontWeights.Bold; labels.Add(new Engine.Liste(allelems, 0, 0)); Canvas.SetTop(allelems, y); Canvas.SetLeft(allelems, x); canvas.Children.Add(allelems); var all = new List <Information>(); GraphReader.getPtr(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son, ref all); y += 5; foreach (var result in all.Where(x => x.type != -1).ToList()) { y += 20; var lab = new Label(); lab.Content = $"{ Configuration.types[result.type]} : { result.name}"; lab.FontSize = 14; lab.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); Rect measureRect = new Rect(lab.DesiredSize); lab.Arrange(measureRect); var liste = new Liste(lab, measureRect.Width, measureRect.Height); liste.setPosition((int)x, (int)y); liste.id = result.id; labels.Add(liste); Canvas.SetTop(liste.label, y); Canvas.SetLeft(liste.label, x); canvas.Children.Add(liste.label); } y += 20; var nelems = new Label(); nelems.Content = $"Nombres éléments({GraphReader.CountNext(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son)}) : "; nelems.FontSize = 14; nelems.FontWeight = FontWeights.Bold; labels.Add(new Engine.Liste(nelems, 0, 0)); Canvas.SetTop(nelems, y); Canvas.SetLeft(nelems, x); canvas.Children.Add(nelems); all = GraphReader.getElementList(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son); foreach (var result in all.Where(x => x.type != -1).ToList()) { y += 20; var lab = new Label(); lab.Content = $"{ Configuration.types[result.type]} : { result.name}"; lab.FontSize = 14; lab.Measure(new Size(Double.PositiveInfinity, Double.PositiveInfinity)); Rect measureRect = new Rect(lab.DesiredSize); lab.Arrange(measureRect); var liste = new Liste(lab, measureRect.Width, measureRect.Height); liste.setPosition((int)x, (int)y); liste.id = result.id; labels.Add(liste); Canvas.SetTop(liste.label, y); Canvas.SetLeft(liste.label, x); canvas.Children.Add(liste.label); } }
private void move_Item(object sender, RoutedEventArgs e) { if (state == State.Middle) { var item = (MenuItem)e.OriginalSource; var name = (string)item.Header; var element = middle.FindName(name); if (element != null && element.shortcut_id == "") { if (current != null) { var elemcurrent = middle.First(current.Id); if (elemcurrent != null) { Information info; info.name = middle.nameValid(elemcurrent.nameElement.Name); info.id = GetUniqueId(); info.type = elemcurrent.Type; info.shortcut = ""; Kernel.addGraph(Kernel.getElement(element.Id), info, 1); if (GraphReader.Element(Kernel.getElement(elemcurrent.Id)).son != IntPtr.Zero) { var ptr = Kernel.getElement(info.id); Information infos; infos.name = GraphReader.Element(GraphReader.Element(Kernel.getElement(elemcurrent.Id)).son).info.name; infos.id = GetUniqueId(); infos.type = GraphReader.Element(GraphReader.Element(Kernel.getElement(elemcurrent.Id)).son).info.type; infos.shortcut = ""; Kernel.addGraph(ptr, infos, 1); copyElement(Kernel.getElement(infos.id), GraphReader.Element(Kernel.getElement(elemcurrent.Id)).son, 1); } Information cutInfo; cutInfo.id = elemcurrent.Id; cutInfo.name = elemcurrent.nameElement.Name; cutInfo.type = -1; cutInfo.shortcut = ""; if (task.ContainsKey(elemcurrent.Id)) { task.Hide(elemcurrent.Id); } Kernel.Update(cutInfo); //stupid code a lot of repeat current = null; middle.current = null; var elementData = Kernel.getElement(middle.getCurrent()); var son = Kernel.getSon(elementData); middle.hideCurrent(); if (task.ContainsKey(middle.getCurrent())) { task.setKey(middle.getCurrent(), middle.getCurrent()); } this.middle.setCurrent(middle.getCurrent()); this.middle.GenerateGraph(middle.getCurrent(), son); middle.setTitle(middle.getCurrent()); } } } } }
static void Main(string[] args) { string path = @"c:\users\pstepnowski\documents\visual studio 2015\Projects\ConsoleApplication13\ConsoleApplication13\Graph.txt"; var graph = new GraphReader().Read(path); }
public void ShowMenu(int xmouse, int ymouse) { ContextMenu menu = new ContextMenu(); foreach (var item in Items) { if (item.Item2 == state || item.Item2 == State.All) { var menuItem = new MenuItem(); menuItem.Header = item.Item1; menuItem.Click += click_Item; menu.Items.Add(menuItem); } } //trie var trie = new MenuItem(); trie.Header = "Trie par nom"; trie.Click += trie_Item; menu.Items.Add(trie); //copy int type = -1; if (current != null && (desktop.Contains(xmouse, ymouse) != null || middle.Contains(xmouse, ymouse, ref type) != null)) { var menuItem = new MenuItem(); menuItem.Header = "Copier"; menuItem.Click += copy_Item; menu.Items.Add(menuItem); var cut = new MenuItem(); cut.Header = "Couper"; cut.Click += cut_Item; menu.Items.Add(cut); if (state == State.Middle) { List <Information> list; list = GraphReader.getElementList(GraphReader.Element(Kernel.getElement(middle.getCurrent())).son).Where(x => x.id != current.Id && x.type != -1).ToList(); if (current.Type != 4) { list = list.Where(x => x.type != 4).ToList(); } if (list.Count > 0) { var move = new MenuItem(); move.Header = "Deplacer vers"; foreach (var result in list) { var sub_menu = new MenuItem() { Header = result.name }; sub_menu.Click += move_Item; move.Items.Add(sub_menu); } move.Click += cut_Item; menu.Items.Add(move); } } var rename = new MenuItem(); rename.Header = "Renommer"; rename.Click += rename_Item; menu.Items.Add(rename); var supp = new MenuItem(); supp.Header = "Supprimer"; supp.Click += delete_Item; menu.Items.Add(supp); } //past if (copy != null || cut != null) { var menuItem = new MenuItem(); menuItem.Header = "Coller"; menuItem.Click += past_Item; menu.Items.Add(menuItem); } //past racc if (copy != null) { var menuracc = new MenuItem(); menuracc.Header = "Coller raccourci"; menuracc.Click += past_shortcut_Item; menu.Items.Add(menuracc); } var p = new MenuItem(); p.Header = "Propriétés"; p.Click += p_Item; menu.Items.Add(p); this.content.ContextMenu = menu; }