Badg3r1977 Ответов: 0

Проблемы C# при добавлении элементов в пользовательский combobox (редактор пользовательских коллекций/w) во время выполнения / разработки


Всем Привет.

Во-первых, я новичок в C# и все еще учусь.

Я пишу серию элементов управления, первый из которых-это элемент управления со списком соединений.

Идея заключается в том, что он выглядит как стандартный ComboBox и заполняется именем соединения, а когда элемент выбран, он будет передавать строку соединения.

Свойство Connection загружает редактор пользовательской коллекции, который добавляет новый объект элемента подключения и содержит описание (которое отображается в списке), имя сервера, имя пользователя и пароль.

У меня есть следующие проблемы:
1) Когда я добавляю новое соединение во время разработки, я не могу удалить их (они исчезают из списка, но все еще отображаются во время выполнения).
2) при добавлении элементов во время выполнения они не отображаются в списке.
3) вероятно, будет больше проблем, но это основные из них в настоящее время.

Код ниже:

public class ConnectionItem
    {
        public string Description { get; set; }
        public string ServerAddress { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }

        public ConnectionItem() { }
        public ConnectionItem(string Descripption, string ServerAddress, string Username, string Password)
        {
            this.Description = Description;
            this.ServerAddress = ServerAddress;
            this.Username = Username;
            this.Password = Password;
        }
    }


public class MyConnectionCollectionEditor : CollectionEditor
    {
        public MyConnectionCollectionEditor() : base(type: typeof(List<ConnectionItem>)) { }
        protected override object CreateInstance(Type itemType)
        {
            return new ConnectionItem();
        }
    }


public class ConnectionComboBox : System.Windows.Forms.ComboBox
    {
        private List<ConnectionItem> _MyConnections = new List<ConnectionItem>();
        [Editor(typeof(MyConnectionCollectionEditor), typeof(UITypeEditor))]
        [DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
        public List<ConnectionItem> MyConnections
        {
            get
            {
                return _MyConnections;
            }
            set
            {
                _MyConnections = value;
            }
        }

        public ConnectionComboBox() { }
    }


Есть ли у кого-нибудь представление о том, что я делаю неправильно (пожалуйста, имейте в виду, что я новичок)

Спасибо

Что я уже пробовал:

Я искал в интернете, но не могу найти ничего, что делает именно то, что мне нужно.

Richard Deeming

Насколько я могу судить, между ними нет никакой связи. MyConnections собственность и Предметы[^] коллекция.

То Items это то, что будет отображаться во время выполнения.

0 Ответов