Wątek przeniesiony 2014-07-16 17:41 z C# i .NET przez ŁF.

Nie mogę dodać obiektu do listy

0

Nie wiem czemu ale próbowałem na różne sposoby dodać obiekt do listy i za każdym razem wyskakuje ten sam błąd: Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu.

...
    public partial class StrDEDrink : UserControl, ISwitchable
    {
        public int ostatnie_id;
        public int dod_edt;
        public XDocument xml_drinki;
        public List<kDrinki> lst_pDrinkow;

        public StrDEDrink()
        {
            InitializeComponent();
        }
        public StrDEDrink(int pop_id, int dod0_edy1)
        {
            ostatnie_id = pop_id;
            InitializeComponent();
            dodaj_edytuj(dod0_edy1);
            start();
        }

        private void start()
        {
            xml_drinki = XDocument.Load("drinki.xml");
            List<kDrinki> lst_pDrinkow = (
                from drink in xml_drinki.Root.Elements("PRZEPIS")
                select new kDrinki(
                    int.Parse(drink.Attribute("ID").Value),
                    drink.Element("NAZWA").Value,
                    drink.Element("SKLADNIKI").Value,
                    drink.Element("OPIS").Value,
                    drink.Element("SCIEZKA").Value
                    )
                ).ToList<kDrinki>();
        }
...
        private void but_dodaj_Click(object sender, RoutedEventArgs e)
        {
            string nowa_sciezka = " ";
            List<string> sklad = new List<string>();
            char[] znaki = { '\n', '\r'};
            string[] tab_sklad = txt_skladniki.Text.Split(znaki);
            foreach (string element in tab_sklad)
            {
                //if (!(string.IsNullOrWhiteSpace(element)))
                    sklad.Add(element);
            }

            string nowy_sklad = " ";
            foreach(string element in sklad)
            {
                nowy_sklad = element + ";";
            }

            if (!(string.IsNullOrWhiteSpace(txt_nazwa.Text)))
            {
                int nOstID = ostatnie_id + 1;
                lst_pDrinkow.Add(new kDrinki(nOstID, txt_nazwa.Text, nowy_sklad, txtbox_opis.Text, nowa_sciezka));  <-----błąd

                XDocument xml = new XDocument(
                    new XDeclaration("1.0", "utf-8", "yes"),
                    new XComment("Przepisy drinków"),
                    new XElement("PRZEPISY",
                        from drink in lst_pDrinkow
                        orderby drink.id
                        select new XElement("PRZEPIS",
                            new XAttribute("ID", drink.id),
                            new XElement("NAZWA", drink.nazwa),
                            new XElement("SKLADNIKI", drink.skladniki),
                            new XElement("OPIS", drink.opis),
                            new XElement("SCIEZKA", drink.sciezka)
                            )
                        )
                    );

                xml.Save("drinki.xml");
            }
            else
                MessageBox.Show("Brak nazwy");
        }
...
  
--------      
public class kDrinki
    {
        //Parametry przepisu
        public int id {get; set;}
        public string nazwa { get; set; }
        public string skladniki { get; set; }
        public string opis { get; set; }
        public string sciezka { get; set; }

        public kDrinki()
        {
           
        }
        public kDrinki(int _id, string _nazwa, string _skladniki, string _opis, string _sciezka)
        {
            id = _id;
            nazwa = _nazwa;
            skladniki = _skladniki;
            opis = _opis;
            sciezka = _sciezka;
        }
       
        
    }
1

nie utworzyłeś obiektu

lst_pDrinkow 

1 użytkowników online, w tym zalogowanych: 0, gości: 1