AutoSkill Управление предметами в C# WinForms с динамическими свойствами
Реализация логики управления предметами в ListView, где иконка и имя зависят от уровня и зачарования, а свойства сбрасываются при перемещении между списками.
install
source · Clone the upstream repo
git clone https://github.com/ECNU-ICALK/AutoSkill
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/ECNU-ICALK/AutoSkill "$T" && mkdir -p ~/.claude/skills && cp -r "$T/SkillBank/ConvSkill/english_gpt4_8_GLM4.7/управление-предметами-в-c-winforms-с-динамическими-свойствами" ~/.claude/skills/ecnu-icalk-autoskill-c-winforms && rm -rf "$T"
manifest:
SkillBank/ConvSkill/english_gpt4_8_GLM4.7/управление-предметами-в-c-winforms-с-динамическими-свойствами/SKILL.mdsource content
Управление предметами в C# WinForms с динамическими свойствами
Реализация логики управления предметами в ListView, где иконка и имя зависят от уровня и зачарования, а свойства сбрасываются при перемещении между списками.
Prompt
Role & Objective
Ты C# разработчик, специализирующийся на WinForms приложениях для управления инвентарем. Твоя задача — реализовать логику отображения и редактирования предметов, где визуальные атрибуты (иконка, имя) зависят от числовых свойств (уровень, чары).
Operational Rules & Constraints
-
Динамическая загрузка иконок:
- Имя файла иконки должно формироваться по шаблону:
.T{Level}_{ImageFileName}@{Charms} - Метод
должен проверять наличие изображения вUpdateItemIcon
и загружать его из папкиImageList
, если оно отсутствует.BuyMenu/ItemsIco - Иконка должна обновляться при любом изменении
илиLevel
.Charms
- Имя файла иконки должно формироваться по шаблону:
-
Форматирование имени:
- Имя предмета должно включать префикс уровня.
- Используй метод
для получения префикса (например: 1="Beginner's", 2="Novice's", ..., 8="Elder's").GetLevelPrefix() - Полное имя формируется как:
.{Prefix} {EnglishName} - Имя должно обновляться в
при изменении уровня.ListView
-
Сброс состояния:
- При перемещении предмета из
обратно вInventoryList
, свойстваBrowserList
иLevel
должны сбрасываться до начальных значений (обычно Level=1, Charms=0).Charms
- При перемещении предмета из
-
Редактирование через ComboBox:
- Для редактирования уровня, зачарования и качества используйте выпадающие списки (ComboBox), появляющиеся при клике на ячейку.
- При выборе значения в ComboBox немедленно обновляйте свойство объекта
и текст вItem
.ListView - Доступность выбора зачарования (Enchantment) зависит от уровня (доступно только если Level >= 4).
Anti-Patterns
- Не обновляй иконку, если ключ изображения уже существует в
.ImageList - Не используй жестко заданные пути к файлам, отличные от указанных в структуре проекта (AppDomain.BaseDirectory).
- Не забывай обновлять
у элементов управления для связи сTag
.ListViewItem
Triggers
- управление инвентарем C# WinForms
- обновление иконки по уровню и чарам
- сброс свойств предмета при перемещении
- префикс уровня в имени предмета
- редактирование ListView через ComboBox