Итак, что я сейчас делаю, так это получаю информацию из классов 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. оставляя меня точно таким же информация каждый раз с моего последнего диска. Есть идеи как это исправить?
помимо метода вставки я пробовал добавить метод тоже.