/// <summary>
        /// Create wrapper for string and add to list
        /// </summary>
        private StringListEntry AddItem(string value, bool isNew)
        {
            var newItem = new StringListEntry {
                Value = value, Owner = this, IsNew = isNew
            };

            StringCollection.Add(newItem);
            OnPropertyChanged("CanDelete");
            return(newItem);
        }
        public DemoComponents()
        {
            // Create the general frame
            uint row   = 1;
            var  table = new LabelWidgetTable(5, 2);

            table.BorderWidth = 5;

            // Just a text entry
            var nameEntry = new Entry("Bob");

            table.AttachExpanded(row++, "Name", nameEntry);

            // An unexpanded enumeration combo box
            var ecb = new EnumComboBox(typeof(ButtonsType));

            ecb.ActiveEnum = ButtonsType.YesNo;
            table.Attach(row++, "EnumComboBox", ecb);

            // An unexpanded described
            testEnumCombo          = new EnumComboBox(typeof(ExampleEnumeration));
            testEnumCombo.Changed += OnTestEnumChanged;
            table.Attach(row++, "ExampleEnumeration", testEnumCombo);

            // Add the string entry
            var sle = new StringListEntry();

            sle.Values = new[]
            {
                "Line 1", "Line 2", "Line 3",
            };
            sle.CompletionStore.AppendValues("List 4");
            sle.CompletionStore.AppendValues("List 5");
            sle.CompletionStore.AppendValues("List 6");
            sle.CompletionStore.AppendValues("List 7");
            table.AttachExpanded(row++, "StringListEntry", sle);

            // Return it
            PackStart(table, false, false, 0);
            PackStart(new Label(""), true, true, 0);
        }