Как вы можете использовать ListView, чтобы показать пользователю коллекцию объектов и управлять этими объектами?Связать ListView с набором объектов
ответ
В целях аргумента, вот наша цель дизайна: у нас есть объект «монстр», и что «монстр» будет иметь несколько «полномочий». Пользователь взаимодействует с полномочиями через элемент ListView.
Во-первых, мы создаем объект Power. Дайте объекту следующий метод:
public ListViewItem makeKey()
{
return new ListViewItem(name);
}
где имя - это имя источника питания и строка. Этот ListViewItem будет служить ключом, позволяющим нам позже идентифицировать и получить эту мощность.
Далее мы должны добавить где-нибудь в объекте Monster, чтобы отслеживать все эти полномочия.
public Dictionary<ListViewItem,Power> powers;
Так что теперь нам нужен способ добавить силы к монстру.
public void addPower(Power newPower) {
ListViewItem key = newPower.makeKey();
monster.powers.add(key, newPower);
}
Хорошо, почти сделано! Теперь у нас есть словарь ListViewItems, который связан с полномочиями монстра. Просто возьмите ключи от этого словаря и вставить их в ListView:
foreach (ListViewItem key in powers.Keys)
powerList.Items.Add(key);
Где powerList является ListView мы добавляем в ListViewItems к.
Хорошо, поэтому у нас есть ListViewItems в ListView! Теперь, как мы общаемся с ними? Сделайте кнопку, а затем функцию примерно так:
private void powerRemoveButton_Click(object sender, EventArgs e)
{
if (powerList.SelectedIndices.Count > 0)
{
int n = powerList.SelectedIndices[0];
ListViewItem key = powerList.Items[n];
monster.powers.Remove(key);
powerList.Items.Remove(key);
}
else
{
MessageBox.Show("No power selected.");
}
}
И все. Надеюсь, вы нашли это полезным. Я не уверен, что это был преднамеренный аспект их дизайна, но ListViews и Dictionaries сочетаются так удивительно хорошо, когда вы используете ListViewItem как ключ к радости!
- 1. listview с набором целых чисел
- 2. JLists с набором объектов
- 3. Селектор с набором объектов
- 4. Как связать с listview
- 5. Связать DataTable с ListView
- 6. Связать ObservableCollection с ListView
- 7. JUnit: Как связать методы @Test с набором?
- 8. Связать учетную запись с набором данных
- 9. Как связать Список объектов с концентратором Раздел ListView
- 10. Как связать элементы с ListView
- 11. Сопоставление компонента с набором объектов значений
- 12. Crystal Report с набором объектов Object
- 13. Использование Automapper с набором абстрактных объектов
- 14. Борясь с этим смешанным, вложенным набором объектов
- 15. Флажок привязки пружин с набором объектов
- 16. Связать контекстное меню с каждым элементом списка, связанным с набором объектов - Windows Phone 7
- 17. Счет объектов с ListView
- 18. Невозможно связать Список объектов в Listview в Asp.net
- 19. Как связать ListView для просмотра определенных свойств набора объектов?
- 20. Синхронизация коллекции обернутых объектов с набором развернутых объектов
- 21. lodash: массив фильтров объектов с различным набором объектов
- 22. Django Managers - Получение объектов с непустым набором связанных объектов
- 23. Ошибка 2062: сопоставление между набором объектов и набором ассоциаций
- 24. Специальная модель связующего для сложной модели с набором полиморфных объектов
- 25. Как связать столбцы родительской строки с набором дочерних объектов в ultrawingrid?
- 26. Связать пустой список объектов
- 27. Петля с набором и набором?
- 28. Как связать выпадающий список с типизированным набором данных в C#?
- 29. Как динамически связать другой фильтр с существующим набором запросов?
- 30. Как связать сервер причала с определенным набором IP-адресов.
Серьезно ... вы уже почти столько ответили на свой вопрос. – Josh 2008-09-19 04:34:38