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;
}
}