void OpenFile()
        {
            OpenFileDialog open_file = new OpenFileDialog();

            open_file.FileName   = "";
            open_file.DefaultExt = ".txt";
            open_file.Filter     = "Text files (.txt)|*.txt";

            bool?result = open_file.ShowDialog();

            if (result == true)
            {
                builds.Clear();
                foreach (string line in File.ReadAllLines(open_file.FileName))
                {
                    MKBuild        new_build = new MKBuild();
                    Queue <string> q         = new Queue <string>(line.Split('`'));

                    //Setup selected items
                    foreach (ItemGroup group in new_build.item_groups)
                    {
                        int index = int.Parse(q.Dequeue());
                        if (index >= 0)
                        {
                            group.selected_item = group.items[index];
                        }
                    }

                    //Setup stat weights
                    foreach (NameValue nv in new_build.stat_weights)
                    {
                        nv.value = double.Parse(q.Dequeue());
                    }

                    new_build.name = q.Dequeue();

                    builds.Add(new_build);
                }
            }
        }
 void RemoveBuild(MKBuild remove_me)
 {
     builds.Remove(remove_me);
 }