Program açıldığında kayıtlı listview verilerini programda gostermek

Ercan Kandemir

Hectopat
Katılım
29 Temmuz 2014
Mesajlar
28
Yer
İstanbul
Daha fazla  
Cinsiyet
Erkek
Meslek
Bilgisayar Programcısı
Merhaba Arkadaşlar, Ben bir program üzerinde çalışıyorum ve programımda list view e itemleri my.settings kodu ile kaydediyorum ve programı kapatıp açtığımdada o kaydettiğim list view verisinin ekranda açılmasını istiyorum ama bir türlü ayarlıyamadım. Nasıl ayarlıyabilirim? Yardımlarınız için şimdiden teşekkürler...
 
Merhabalar,
Listview'da nasıl bir veri tutmayı planlıyorsunuz? Örnek vermek gerekirse kitabın yazarı, fiyatı, yayınevi gibi sınıf olarak tanımlanabilecek bir veri mi? My.settings dosyası programın ayarlarını örneğin font büyüklüğü, arka plan rengi, yazı rengi v.s. gibi değişkenleri tutmak için kullanılır. Büyük ihtimalle listviewda kullanıcıya göstermek istediğiniz veriler bu tipteki ayar verileri değil.
 
Listview'e verdiğin fiyat-kitap evi -kitap yazarı örneğindeki gibi giripte kaydedilen bir veriyi program bir dahaki seferinde açıldığında Listview de o verinin görünmesini istiyorum. Listview de öğeler(itemler) bir satıra ("Kitap Adı-Yazarı-Yazıldığı tarih)şeklinde ayrıntılı şekilde yazılacak.My.settings komutu ile kaydedilmiyorsa hangi komutlar ile kaydedebilirim?
 
Formunuza listView1 adında bir listview kontrolü ekleyin. Formunuzun olaylar kısmından (şimşek simgeli yer) Form1_Load ve Form1_FormClosing olaylarını ayrı ayrı forma ekleyin. Form1.cs yada form dosyanızın adı ne ise o *.cs dosyasında gerekli gördüğünüz eklemeleri aşağıdaki koddan yapabilirsiniz. Verileri kaydetmek ve sonradan erişmek için veri.xml adlı dosyayı kullanıyoruz. Bu dosyaya kodda da belirttiğimiz üzere ProjeKlasörünüz\bin\debug\veri.xml yoluyla yada projenize sağ tıklayarak gelen menüden en altlarda bulunan "Open Folder ..." komutu vererek de erişebilirsiniz.
Kod:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Xml.Serialization;

namespace ListviewOrnek
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        List<Kitap> kitaplar;

        private void Form1_Load(object sender, EventArgs e)
        {
            try
            {
                XmlSerializer okuyucu = new XmlSerializer(typeof(List<Kitap>));
                //  ProjeKlasörümüz\bin\debug klasörü altında veri.xml adlı dosyadan verileri alıyoruz.
                string yol = AppDomain.CurrentDomain.BaseDirectory + "\\veri.xml";
                StreamReader file = new StreamReader(yol);
                //xml dosyasından bu satır ile verileri alıyoruz
                kitaplar = (List<Kitap>)okuyucu.Deserialize(file);
                file.Close();
            }
            catch//veri almak için xml dosyası bulunamazsa varsayılan verilerle Kitap listesini doldur.
            {
                kitaplar = new List<Kitap>()
               {
                new Kitap{ Adi="Kitap1", Yazari="Yazar1", YayinlanmaYili="2001"},
                new Kitap{ Adi="Kitap2", Yazari="Yazar2", YayinlanmaYili="2002"},
                new Kitap{ Adi="Kitap3", Yazari="Yazar3", YayinlanmaYili="2003"},
               };
            }

          
           //Listview özelliklerini ayarlıyoruz                              
            listView1.LabelEdit = false;                       
            listView1.CheckBoxes = true;              
            listView1.GridLines = true;           
            //Tüm verilerin görünmesi için detaylı görünüme ayarlamalıyız.
            listView1.View = View.Details;                      
            listView1.FullRowSelect = true;           

            //Kitap listesindeki verileri listviewa ekliyoruz.
            for (int i = 0; i < kitaplar.Count(); i++)
            {
                Kitap siradakiKitap=kitaplar[i];
                string[] kitapOzellikleri = { siradakiKitap.Adi, siradakiKitap.Yazari, siradakiKitap.YayinlanmaYili};
                ListViewItem yeniListViewElemani = new ListViewItem(kitapOzellikleri);
                listView1.Items.Add(yeniListViewElemani);
            }           
          
            //listviewın sütunlarını belirliyoruz. Her biri 100 px genişliğinde ve sola yaslanmış şekilde
            listView1.Columns.Add("Adı", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Yazarı", 100, HorizontalAlignment.Left);
            listView1.Columns.Add("Yayınlanma Yılı", 100, HorizontalAlignment.Left);          

        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            //Program kapatılırken tüm verileri xml dosyasına yazalım
            XmlSerializer yazici = new XmlSerializer(typeof(List<Kitap>));
            string yol = AppDomain.CurrentDomain.BaseDirectory + "\\veri.xml";
            StreamWriter file = new StreamWriter(yol);
            yazici.Serialize(file, kitaplar);
            file.Close();           
        }


    }

    public class Kitap
    {
        public string Adi
        {
            get;
            set;
        }

        public string Yazari
        {
            get;
            set;
        }

        public string YayinlanmaYili
        {
            get;
            set;
        }
    }

}
 
Uyarı! Bu konu 11 yıl önce açıldı.
Muhtemelen daha fazla tartışma gerekli değildir ki bu durumda yeni bir konu başlatmayı öneririz. Eğer yine de cevabınızın gerekli olduğunu düşünüyorsanız buna rağmen cevap verebilirsiniz.

Technopat Haberler

Yeni konular

Geri
Yukarı