Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
3 / 3 / 1
Регистрация: 05.08.2011
Сообщений: 102

Как сделать замену в xml файле выбранных в listbox элементов по индексу

24.04.2012, 20:15. Показов 718. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Как сделать замену в xml файле выбранных в listbox элементов по индексу?

Если выбрать все замена работает, если выбрать несколько разных в listBox показывает ошибку при изменении.

Допустим если выбираю в listBox США и Чехия то заменить в xml файле Россия Франция если другие элементы то другие.

listbox

США Польша Чехия

xml файл
XML
1
2
3
4
5
6
7
<Root>
<Statya>
<TypeTermins>Россия</TypeTermins>
<TypeTermins>Германия</TypeTermins>
<TypeTermins>Франция</TypeTermins>
</Statya>
</Root>
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
List<XElement> hmlno = new List<XElement>();
 
        IEnumerable<XElement> list = oldXElement.XPathSelectElements("TypeTermins");
 
        System.Collections.ArrayList selectedd = new System.Collections.ArrayList(listBoxAlfa.SelectedItems);
 
        foreach (XElement elll in list)
        {
           List<XElement> listAgain = list.ToList();
 
           XElement[] arv = list.ToArray();
 
           hmlno.Add(elll);
 
           if (listBoxAlfa.Items.Count != 0)
           {
               if (listBoxAlfa.Items.Count == 1 && listBoxAlfa.SelectedIndex == 0 && listBoxAlfa.SelectedItems.Count == 1)
               {
                 hmlno[0].Value = listBoxAlfa.SelectedItems[listBoxAlfa.SelectedIndex].ToString();
                 listAgain[0].Value = hmlno[0].Value;
                }
                else if (listBoxAlfa.Items.Count > 1 && listBoxAlfa.SelectedIndex == 0 && listBoxAlfa.SelectedItems.Count == 1)
                {
                   hmlno[0].Value = listBoxAlfa.SelectedItems[listBoxAlfa.SelectedIndex].ToString();
                   listAgain[listBoxAlfa.SelectedIndex].Value = hmlno[0].Value;
                }
                else if (listBoxAlfa.Items.Count > 1 && listBoxAlfa.SelectedIndex == 1 && listBoxAlfa.SelectedItems.Count == 1)
                {
                   for (int i = 1; i < hmlno.Count; i++)
                   {
                      if (listBoxAlfa.SelectedIndex == i)
               {
               hmlno[i].Value = selectedd[listBoxAlfa.SelectedIndex - 1].ToString();
               listAgain[i].Value = hmlno[i].Value;
               }
                     }
                   }
  else if (listBoxAlfa.Items.Count > 1 && listBoxAlfa.Items.Count == listAgain.Count && listBoxAlfa.SelectedItems.Count == 1 && listBoxAlfa.SelectedIndex >= 0) 
 {
  try
  {
  for (int i = 0; i < hmlno.Count; i++)
  {
    hmlno[i].Value = selectedd[listBoxAlfa.SelectedIndex].ToString();
    listAgain[listBoxAlfa.SelectedIndex].Value = hmlno[i].Value;
  }
  }
  catch (Exception exc)
       {
          if (listBoxAlfa.SelectedIndex == listBoxAlfa.Items.Count)
          {
          }
                     else if (listBoxAlfa.SelectedIndex < listBoxAlfa.Items.Count)
                                                        {
                   for (int i = 0; i < hmlno.Count; i++)
                                                            {
                        if (listBoxAlfa.SelectedIndex == i)
                                                                {
                  hmlno[i].Value = selectedd[0].ToString();
                  listAgain[listBoxAlfa.SelectedIndex].Value = hmlno[i].Value;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
        else if (listBoxAlfa.Items.Count > 1 && listBoxAlfa.SelectedItems.Count > 1)
          {
          foreach (Object selectedItemm in selectedd)
           {
            for (int i = 1; i < hmlno.Count; i++)
              {
              for (int pl = 0; pl < arv.Length; pl++)
              {
              if (arv.Length > selectedd.Count)
              {
              if (pl == 1)
              {
              arv[pl - 1].Value = listBoxAlfa.SelectedItems[pl - 1].ToString();
              listAgain[pl - 1].Value = arv[pl - 1].Value;
              }
              else if (pl == 2)
              {
               arv[pl].Value = listBoxAlfa.SelectedItems[pl - 1].ToString(); // вот здесь ошибка выход индекса за пределы диапазона
               listAgain[pl].Value = arv[pl].Value;  
                      }
                  }
                  else if (arv.Length <= selectedd.Count)
                  {
                  arv[pl].Value = listBoxAlfa.SelectedItems[pl].ToString();
                  listAgain[pl].Value = arv[pl].Value;
                                                                }
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
24.04.2012, 20:15
Ответы с готовыми решениями:

CheckBox в ListBox. Как получить индексы выбранных элементов
Добрый вечер. Только учусь. В приложении требуется реализовать функцию удаления выбранных элементов ListBox -a. Элементами являются ...

Как создать строку из элементов, выбранных в ListBox
И так представим, что есть lisbox с multiselect. Щелчок мышкой по элементу в listbox должен добавлять название элемента в строку string...

Как перерисовывать StackPanel относительно количества выбранных элементов в ListBox
Добрый день. Вот решил попробовать в рамках изучения С# написать небольшую учебную программу и ничего не вышло. Как перерисовывать...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.04.2012, 20:15
Помогаю со студенческими работами здесь

Как сделать замену в текстовом файле, имеющем например 5 полей?
Как сделать замену в текстовом файле, имеющем например 5 полей? Подробнее иметься прайс в текстовом формате (5 поле) требуется периодически...

Перебор выбранных элементов в ListBox
привет, нужно выбрать все выбраные элементы listbox щас пишет ошибку что не может привести к типу ListboxItem Oo foreach(ListBoxItem...

Поиск выбранных элементов в ListBox
Проблема нубская, но никак не получается ее решить. На WPF только перехожу, первый проект. Есть ListBox, задаю его вот так: ...

Получение выбранных элементов из Listbox
Добрый день! В приложении WPF у меня на форме есть Listbox, который заполняется из бд значениями string List&lt;string&gt; works =...

Как сделать привязку данных xml и listbox?
Есть combobox, есть listbox. Combobox - это для категорий, listbox - для продуктов. Мне нужно загрузить данные из xml файла в listbox...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru