/// <summary>
 ///     Initializes a new instance of the <see cref="ConferenceEditWindow" /> class.
 /// </summary>
 /// <param name="conf">The conference to be edited.</param>
 public ConferenceEditWindow(Conference conf)
     : this()
 {
     _curConf = conf;
     txtName.Text = conf.Name;
     txtDivisions.Text = "";
     MainWindow.Divisions.Where(division => division.ConferenceID == conf.ID)
               .ToList()
               .ForEach(division => txtDivisions.Text += division.Name + "\n");
     txtDivisions.Text = txtDivisions.Text.TrimEnd(new[] { '\n' });
 }
        /// <summary>Handles the Click event of the btnAdd control. Allows the user to add a new item.</summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">
        ///     The <see cref="RoutedEventArgs" /> instance containing the event data.
        /// </param>
        private void btnAdd_Click(object sender, RoutedEventArgs e)
        {
            var ibw = new InputBoxWindow("Enter the name for the new conference:");
            if (ibw.ShowDialog() == true)
            {
                var name = InputBoxWindow.UserInput.Replace(':', '-');
                if (MainWindow.Conferences.Any(conference => conference.Name == name))
                {
                    MessageBox.Show("There's already a conference with the name " + name + ".");
                    return;
                }
                var usedIDs = new List<int>();
                MainWindow.Conferences.ForEach(conference => usedIDs.Add(conference.ID));
                var i = 0;
                while (usedIDs.Contains(i))
                {
                    i++;
                }

                MainWindow.Conferences.Add(new Conference { ID = i, Name = name });

                var db = new SQLiteDatabase(MainWindow.CurrentDB);
                db.Insert("Conferences", new Dictionary<string, string> { { "ID", i.ToString() }, { "Name", name } });
                lstData.ItemsSource = null;
                lstData.ItemsSource = MainWindow.Conferences;

                var confToEdit = new Conference();
                foreach (Conference item in lstData.Items)
                {
                    if (item.Name == name)
                    {
                        confToEdit = item;
                        break;
                    }
                }

                showEditConferenceWindow(confToEdit);
            }
        }
        /// <summary>Shows the edit conference window, and reloads the conferences the window is closed, if required.</summary>
        /// <param name="conf">The conf.</param>
        private void showEditConferenceWindow(Conference conf)
        {
            var cew = new ConferenceEditWindow(conf);
            cew.ShowDialog();

            if (MustUpdate)
            {
                lstData.ItemsSource = null;
                lstData.ItemsSource = MainWindow.Conferences;
            }
        }