Sanal modda bir ListView kullanıyorum, anladığım kadarıyla, liste görünümü sadece listedeki az sayıda öğenin kaydını tutar. Kullanıcı kaydırdıkça, sanal listeden göstermesi gereken öğeleri dinamik olarak alır.Sanal modda bir ListView öğesine nasıl öğe ekleyebilirim/kaldırabilirim?
Ancak bir öğe ana listeden eklenir veya kaldırılırsa ne olur? Liste görünümünde gösterilen indeks aralığı dışında bir öğe eklenirse/çıkarılırsa, kullanıcı görünümü bu dizine kaydırıldığında liste görünümünün eklenmiş/eksik öğeleri göstereceğini varsayardım. Bu doğru mu? Ancak, kullanıcı şu anda görüntülediği dizin aralıklarından eklendiğinde/çıkarıldığında ne olur? Yeni/eksik öğeleri göstermek için görüntülemekte olan öğeleri yenilemek için liste görünümünü nasıl tetiklerim?
FYI: Bu, bir fark yaratırsa ObjectListView kullanıyorum.
Listedeki her öğe için ayrı ayrı küçük resimler yüklüyorum, böylece her bir öğeyi görüntülerken bildirimde bulunmam gerekiyor, böylece küçük resimleri önceden yükleyebilirim. Büyük olasılıkla çok sayıda öğe gösterebileceğinden tüm küçük resimleri bir kerede yüklemekten kaçınmaya çalışıyorum. Şu anda koleksiyonum değiştiğinde VirtualLIstView güncellemek için Build() çağırıyorum. Invalidate() öğesini Build() üzerinden çağırmak için bir neden var mı? –
Sanal bir liste tam olarak ne istediğinizi yapmak için doğru bir yaklaşımdır - tam olarak aynı stratejiyi kullandım. Ve BuildList() en iyisidir - işlemenin bir parçası olarak Invalidate() öğesini çağırır. Çalışıyor mu? – Grammarian