How to refresh DataSource of a ListBox

后端 未结 7 1169
轮回少年
轮回少年 2020-11-27 04:39

Form has one Combobox and one ListBox. When the \"Add\" button is clicked, I want to add the selected item from the ComboBox to the ListBox.

public partial c         


        
相关标签:
7条回答
  • 2020-11-27 05:27

    listbox1.DataSource property looks for value changes but by assigning the same list all the time the value won't really change.

    You can use a BindingList<T>, instead of your List<T>, to automatically recognize new items added. Your ShowData() method must be called once at startup.

    public partial class MyForm:Form
    {
        public MyForm(){
            InitializeComponent();
            ShowData();
        }
    
        BindingList<MyData> data = new BindingList<MyData>();
    
        private void ShowData()
        {
           listBox1.DataSource = data;
           listBox1.DisplayMember = "Name";
           listBox1.ValueMember = "Id";
        }
    
        private void buttonAddData_Click(object sender, EventArgs e)
        {
           var selection = (MyData)comboBox1.SelectedItem;
           data.Add(selection);
        }
    }
    
    0 讨论(0)
提交回复
热议问题