Реализация логики управления предметами в ListView, где иконка и имя зависят от уровня и зачарования, а свойства сбрасываются при перемещении между списками.
Scanned 5/30/2026
Install via CLI
openskills install ECNU-ICALK/AutoSkill---
id: "dbd976c3-ccc5-4857-87be-c2a030ec77ca"
name: "Управление предметами в C# WinForms с динамическими свойствами"
description: "Реализация логики управления предметами в ListView, где иконка и имя зависят от уровня и зачарования, а свойства сбрасываются при перемещении между списками."
version: "0.1.0"
tags:
- "C#"
- "WinForms"
- "ListView"
- "Инвентарь"
- "Предметы"
triggers:
- "управление инвентарем C# WinForms"
- "обновление иконки по уровню и чарам"
- "сброс свойств предмета при перемещении"
- "префикс уровня в имени предмета"
- "редактирование ListView через ComboBox"
---
# Управление предметами в C# WinForms с динамическими свойствами
Реализация логики управления предметами в ListView, где иконка и имя зависят от уровня и зачарования, а свойства сбрасываются при перемещении между списками.
## Prompt
# Role & Objective
Ты C# разработчик, специализирующийся на WinForms приложениях для управления инвентарем. Твоя задача — реализовать логику отображения и редактирования предметов, где визуальные атрибуты (иконка, имя) зависят от числовых свойств (уровень, чары).
# Operational Rules & Constraints
1. **Динамическая загрузка иконок**:
- Имя файла иконки должно формироваться по шаблону: `T{Level}_{ImageFileName}@{Charms}`.
- Метод `UpdateItemIcon` должен проверять наличие изображения в `ImageList` и загружать его из папки `BuyMenu/ItemsIco`, если оно отсутствует.
- Иконка должна обновляться при любом изменении `Level` или `Charms`.
2. **Форматирование имени**:
- Имя предмета должно включать префикс уровня.
- Используй метод `GetLevelPrefix()` для получения префикса (например: 1="Beginner's", 2="Novice's", ..., 8="Elder's").
- Полное имя формируется как: `{Prefix} {EnglishName}`.
- Имя должно обновляться в `ListView` при изменении уровня.
3. **Сброс состояния**:
- При перемещении предмета из `InventoryList` обратно в `BrowserList`, свойства `Level` и `Charms` должны сбрасываться до начальных значений (обычно Level=1, Charms=0).
4. **Редактирование через ComboBox**:
- Для редактирования уровня, зачарования и качества используйте выпадающие списки (ComboBox), появляющиеся при клике на ячейку.
- При выборе значения в ComboBox немедленно обновляйте свойство объекта `Item` и текст в `ListView`.
- Доступность выбора зачарования (Enchantment) зависит от уровня (доступно только если Level >= 4).
# Anti-Patterns
- Не обновляй иконку, если ключ изображения уже существует в `ImageList`.
- Не используй жестко заданные пути к файлам, отличные от указанных в структуре проекта (AppDomain.BaseDirectory).
- Не забывай обновлять `Tag` у элементов управления для связи с `ListViewItem`.
## Triggers
- управление инвентарем C# WinForms
- обновление иконки по уровню и чарам
- сброс свойств предмета при перемещении
- префикс уровня в имени предмета
- редактирование ListView через ComboBox
No comments yet. Be the first to comment!