Модераторы: Partizan, gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ListView, привязка произвольного объекта 
:(
    Опции темы
jorikdima
Дата 18.2.2008, 21:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 18.1.2008
Где: Там, где Зенит

Репутация: нет
Всего: нет



Приветствую. 
Есть ListView в нем строки, разбитые по колонкам (вид ListView как detailed). Хочу не только просто добавлять строку в ListView но еще и чтоб к каждой строке привязывался объект произвольного типа (неотображаемый). Ну например, я храню в ListView записную книжку и там в столбцах имя фамилия, а я хочу к каждой строке еще хранить структуру в которой буду хранить служебную (неотображаемую) информацию типа когда я занес этого человека в список и т.д. 
Спасибо.
PM MAIL   Вверх
Ctrl
Дата 19.2.2008, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 49
Регистрация: 12.2.2008
Где: Tula

Репутация: 6
Всего: 7



Простейший способ - отнаследоваться от ListViewItem  и добавить туда все что необходимо:
Код

using System;
using System.Text;
using System.Windows.Forms;

namespace WindowsApplication18 {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e) {
            MyListViewItem item1 = new MyListViewItem();
            MyListViewItem item2 = new MyListViewItem();
            item1.Info = new ItemInfo();
            item1.Text = "MyFirstItem";
            item2.Info = new ItemInfo();
            item2.Text = "MySecondItem";
            listView1.Items.AddRange(new ListViewItem[] { item1, item2 });
        }
    }
    public class ItemInfo {
        string someDataCore;
        public string SomeData {
            get { return someDataCore; }
            set { someDataCore = value; }
        }
    }
    public class MyListViewItem : ListViewItem {
        ItemInfo infoCore = null;
        public ItemInfo Info {
            get { return infoCore; }
            set { infoCore = value; }
        }
    }
}

PM MAIL ICQ   Вверх
jorikdima
Дата 19.2.2008, 10:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 18.1.2008
Где: Там, где Зенит

Репутация: нет
Всего: нет



Спасибо. Я тоже об этом подумал smile но уже после того как написал smile
PM MAIL   Вверх
QryStaL
Дата 19.2.2008, 10:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Intellectual feast
**


Профиль
Группа: Участник
Сообщений: 914
Регистрация: 30.11.2005

Репутация: 14
Всего: 32



Есть еще более простой способ.  smile 
Можно не заморачиваться с наследованием, а использовать свойство Tag.

ListViewItem.Tag Property 
Gets or sets an object that contains data to associate with the item. 
The Tag property can be used to store any object that you want to associate with an item. Although you can store any item, the Tag property is typically used to store string information about the item, such as a unique identifier or the index position of the item's data in a database.

Это сообщение отредактировал(а) QryStaL - 19.2.2008, 10:34


--------------------
I don't need a reason being who I am...
PM MAIL ICQ   Вверх
jorikdima
Дата 19.2.2008, 12:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 18.1.2008
Где: Там, где Зенит

Репутация: нет
Всего: нет



Вот!!!

Спасибо! Я же знал  smile 
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0492 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.