Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/18: Рейтинг темы: голосов - 18, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
1

Добавление данных в свойство Tag

27.11.2011, 09:54. Показов 3661. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите начинающему разобраться.

Итак, в WinForms создал дерево TreeView. в него добавлен узел "ClientsNode" с именем "клиенты". В данный узел мы добавляем клиентов из XML документа. Количество клиентов заранее не известно, поэтому организован цикл по перебору.

C#
1
2
3
4
5
...
foreach (XmlNode node in nodes)
{
    ClientsNode.Nodes.Add(node.SelectSingleNode("client_name").InnerText;
}
получается так:

Клиенты (дочерний узел)
Галушкин Иван
Побрякушкина Маша
Салварин Тина
...

Но в XML-документе есть ещё client_id. Необходимо в свойство Tag дочерних узлов узла "клиенты", созданных в цикле foreach, добавить данные из clients_id исходного XML-документа.

Т.е. добавить Ивану его законный id=1, Маше=2, Тино=3 и т. д. Напоминаю, что все id хранятся в clients_id XML-документа.

Покажите кодом, пожалуйста, как происходит процесс перебора clients_id и добавление найденных значений в Tag?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.11.2011, 09:54
Ответы с готовыми решениями:

Запись в свойство tag адреса объекта
У меня есть ListView и внём много айтемов. я хочу чтобы каждый аэтем в свойстве tag хранил ссылку...

Свойство tag
Здравствуйте! У меня создаютса динамически image на форме. У каждной групы етих image есть свой...

свойство Tag
FormMas:=TfmRangPersonal.Create(nil); if not Modal then ...

Свойство класса Tag
Привет всем, есть в жаве свойство у класса подобное C# Tag?

8
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 10:06 2
"client_id" в XML чем является?
0
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
27.11.2011, 10:08  [ТС] 3
Цитата Сообщение от SpawnDDR Посмотреть сообщение
"client_id" в XML чем является?
Тем же самым, чем и client_name. Они на одном уровне.
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 10:47 4
Если на одном уровне и такой же элемент, то можно и так сделать:
C#
1
ClientsNode.Nodes.Add(new TreeNode(node.SelectSingleNode("client_name").InnerText) { Tag = node.SelectSingleNode("client_id").InnerText }));
0
Эксперт .NET
17790 / 12941 / 3381
Регистрация: 17.09.2011
Сообщений: 21,215
27.11.2011, 10:50 5
Создайте класс или структуру, дублирующую элемент из XML, создавайте оную для каждого элемента и крепите к свойству Tag. Тогда у вас там будет не только id, а все остальные данные тоже.
0
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
27.11.2011, 11:28  [ТС] 6
Цитата Сообщение от SpawnDDR Посмотреть сообщение
Если на одном уровне и такой же элемент, то можно и так сделать:
C#
1
ClientsNode.Nodes.Add(new TreeNode(node.SelectSingleNode("client_name").InnerText) { Tag = node.SelectSingleNode("client_id").InnerText }));
Извините, наверное это важно? Забыл указать, что пользуюсь 2008 студией. Данный код не принимает компилятор. Пишет:
Error 1 ; expected
Error 2 Invalid expression term ')'
обе ошибки в самом конце строки. Компилятор ставит меня перед ;
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 11:39 7
Моя ошибка, извините, без студии писал.
Удалите одну скобку просто перед точкой с запятой.
1
0 / 0 / 0
Регистрация: 27.11.2011
Сообщений: 8
27.11.2011, 12:04  [ТС] 8
Цитата Сообщение от SpawnDDR Посмотреть сообщение
Моя ошибка, извините, без студии писал.
Удалите одну скобку просто перед точкой с запятой.
Всё получилось. А если это не сложно, немогли бы Вы пояснить как называется эта конструкция { } внутри которой мы присвоили Tag? Я только учусь, студию держу недели три всего, поэтому мне жутко интересно)
0
162 / 158 / 19
Регистрация: 22.11.2011
Сообщений: 371
27.11.2011, 13:14 9
Конструкция никак не называется. Это синтаксис инициализации объектов и массивов, доступный в C# с 3-й версии. Смысл сводится к тому, что видимые члены объекта могут быть проинициализированы сразу.
Раньше надо было писать так:
C#
1
2
TreeView tw = new TreeView();
tw.Tag = "";
Теперь никто не запрещает писать так:
C#
1
TreeView tw = new TreeView() { tw.Tag = "" };
Лаконичность, удобство.
2
27.11.2011, 13:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.11.2011, 13:14
Помогаю со студенческими работами здесь

Свойство кнопки Tag
видел где то как используют различные состояния кнопки в зависимости от ситуации с помощью...

Что за свойство Tag?
text1.tag ? что за свойства ? Кому не лень дайте сссылки на книжки где есть опесания всех свойст...

Свойство Tag в текстбоксе VBA
Всем добрый вечер. Прошу помощи. Свойство Tag в текстбоксе – явление довольно редкое. Где можно...

Свойство StringGrid.Tag и index
процедура выделяет строку стринггрида зеленым цветом, но объясните что делает свойство...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru