Winfrom中ListBox绑定List数据源更新问题

Winfrom中ListBox绑定List数据源更新问题

摘自:http://xiaocai.info/2010/09/winform-listbox-datasource-update/

Winfrom中ListBox绑定List数据源,第一次可以成功,但后面List更新以后,ListBox并没有更新。

如果 ListBox的数据源 是 DataTable 是可以自动更新的,但若是 List<T> 时对数据的修改界面不会更新,使用 BindingSource 绑定就可以了。
private void InitSample()
{
ListBox listControl = new ListBox();
List<Employee> listSource = new List<Employee>();
BindingSource bs = new BindingSource();
bs.DataSource = listSource;

listControl.DataSource = bs;
listControl.DisplayMember = “Name”;
listControl.ValueMember = “Id”;

// 事先绑定了,这时修改数据源会自动刷新界面显示
listSource.Add(new Employee(1, “Sam”));
listSource.Add(new Employee(2, “John”));

this.Controls.Add(listControl);
}

补充:使用BindingList亦可解决此问题!

时间: 2025-01-03 18:42:34

Winfrom中ListBox绑定List数据源更新问题的相关文章

winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中

for (int i = 0; i < this.dataGridView1.Rows.Count; i++) { this.dataGridView1.Rows[i].Cells["CheckBoxCulums"].Value = this.checkBox1.Checked; } winfrom中DataGridView绑定数据控件中DataGridViewCheckBoxColumn怎么选中,布布扣,bubuko.com

python tkinter 中 listbox绑定scrollbar实现自动循环滚动

上次我自己提出一个问题就是如何实现scrollbar自动滚动(),经过不懈努力终于解决了这个问题!值得庆贺~~~ 话不多说,程序员还是上个代码比较实在!以下就是一个小例子: from tkinter import* class TYST(Tk): def __init__(self): Tk.__init__(self): self.scrollbar = Scrollbar(self) self.scrollbar.pack( side = RIGHT, fill=Y ) self.mylis

WPF中使用相对资源来进行绑定,数据源是通过DataContext来指定的

1. 最外层是Window是对象,Window的ItemsControl使用了ItemsTemplate,然后在ItemsTemplate中要绑定Language属性, 而整个Window的数据源是通过DataContext来指定的,类型是自定义的WindowViewModel, 而Language就是WindowViewModel的一个属性 在Window的构造函数中书写: this.DataContext = new WindowViewModel(); 2.在ItemsTemplate中进

WPF DataGrid的DataGridCheckBoxColumn列前台勾选后对应的绑定数据并未更新

WPF用的时间也不短了,还是遇到一些低级问题,好惭愧. 问题是这样的,WPF的DataGrid中,DataGridCheckBoxColumn列绑定了数据源中的一个boo类型的字段,模式为TwoWay,但界面中勾选后,数据源中的对应字段内容并未更新, 这样就好了 Binding="{Binding IsEmergency,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" 记录一下答案使这里找到的,微软官方论坛好强大. https://s

解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题

解决WPF程序中ListBox ItemsSource变化时不重置ScrollBar的问题 当我们改变ListBox的ItemsSource时,会发现这样一个问题:数据源变化时,虽然控件中的内容会跟着变化,但滚动条却不会重置. 举个例子: 将ListBox绑定到一百个字符串:listbox.ItemsSource = Enumerable.Range(0, 100).Select(i => "## " + i);. 将ListBox的滚动条拖到最后,使之能看到最后的"#

WinForm程序用使用List对象绑定DataGridView数据源

1. 在用List<T>对象绑定DataGridView数据源属性的时候,数据源的内容不会动态更新,如果List<T>对象集合中的数据发生变化,那么数据控件的数据源是不会得到更新的. 一般也不建议用List<T>去填充数据显示控件的数据源. 如果一定要用List<T>对象去绑定数据源,那么首先设置DataGridView的DataSource属性为new List<T>(),然后再将List<T>集合重新赋值给DataSource属性

关于JQuery中$.data绑定数据原理或逻辑

问题: JQuery中,对于.data([key],[value])函数,当使用其进行数据绑定时,假设要绑定的数据是“引用数据类型”,也就是对象:那么.data函数绑定的是该对象的副本还是该对象的一个引用?下面通过以下小例子来测试下: 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Test<

Silverlight中ListBox的数据绑定

在Silverlight中ListBox是一个非常强大的控件.总结下ListBox的绑定数据的方式. 首先,新建一个Book类, 1 public class Book 2 { 3 public string BookName { get; set; } 4 5 public string Author { get; set; } 6 } 接下来BookViewModel.cs中, 1 public class BookViewModel 2 { 3 private List<Book> bo

ListBox绑定一个对象

转自原文 C#中ListBox的Items属性是Object对象,如何显示该对象的别名 而真正的则保存在其他的地方 一般是datasource 绑定一个list对象 list 可以是 自定义类型的对象 如: class Person { INT ID; STRING NAME } list<Person> listps = new list<Person>(); dataSource = listps ; ListBox.DislayMember = "Name"