private void UpdateSelectedTask(string number) { SelectedTask = Exercises .Descendants("task") .FirstOrDefault(i => i .Attribute("number") .Value == number); DrawInstructions(); DrawTaskTable(); DrawDiagrams(); DrawSolutionLines(); }
public void LoadTasks() // Загрузка XML файла tasks.xml, обновление элемента Exercises и меню Exercises { Exercises = XDocument.Load("tasks.xml", LoadOptions.SetBaseUri | LoadOptions.SetLineInfo); // Обновление документа Exercises XmlSchemaSet schema = new XmlSchemaSet(); schema.Add("", "TasksSchema.xsd"); Exercises.Validate(schema, (sender, e) => { throw new XMLValidationException(e.Message); }); var exercises = Exercises // Последовательность заданий для пунктов меню .Descendants("task") // элементы с каждым заданием .Select(i => new { Header = i.Element("name").Value.Trim('\n', '\t'), Tag = i.Attribute("number").Value }); foreach (var exercise in exercises) // Добавление упражнений в меню { MenuItem mi = new MenuItem() { Header = exercise.Header, IsCheckable = true }; mi.Click += (sender, e) => { foreach (MenuItem item in TasksMenu) //убираем галки у всех, кроме выбранного { item.IsChecked = mi == item; } UpdateSelectedTask(exercise.Tag); }; TasksMenu.Add(mi); } }