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.md
source content

Управление предметами в 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