IList переписывает сам - PullRequest
0 голосов
/ 14 января 2019

Итак, что я сейчас делаю, так это получаю информацию из классов win32 и помещаю эту информацию на мой взгляд, используя viewmodel -> mvvm. Так что в этот момент я получаю информацию с моих дисков и помещаю их на мой взгляд. Так как, например, мой компьютер и сервер имеют несколько дисков, я использую для каждого цикла и добавляю информацию в список -> я пробовал IList <> и ICollection <>. мой текущий код:

// диск int index = 0;

        ObjectQuery objectQuery3 = new ObjectQuery("select * from Win32_LogicalDisk");
        ManagementObjectSearcher searcher3 = new
        ManagementObjectSearcher(objectQuery3);
        ManagementObjectCollection disks = searcher3.Get();

        foreach (ManagementObject value in disks)
        {

            disk.FreeSpace = (Convert.ToUInt64(value.GetPropertyValue("FreeSpace"))/1024/1024/1024/1024);
            disk.Size = (Convert.ToUInt64(value.GetPropertyValue("Size")) /1024/1024/1024/1024);
            disk.Name = Convert.ToString(value.GetPropertyValue("Name"));
            disk.VolumeName = Convert.ToString(value.GetPropertyValue("VolumeName"));

            storage.Insert(index, disk);
            index++;
        }

Моя проблема здесь, когда я ставлю точку останова в списке, -> он получает информацию с моих первых дисков, помещает ее в модель «диска», иначе класс. Затем он добавляет модель в IList. на следующей итерации он получает информацию, помещает ее в модель, но после этого он перезаписывает текущий индекс ilist 0 и затем добавляет себя в индекс 1. на следующей итерации он перезаписывает индекс 0, перезаписывает индекс 1 и добавляет себя в индекс 2. оставляя меня точно таким же информация каждый раз с моего последнего диска. Есть идеи как это исправить?

помимо метода вставки я пробовал добавить метод тоже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...