namespace WindowsFormsApplication1{??? public partial class?Myform : Form??? {??????? public Myform()??????? {??????????? InitializeComponent();??????????? Initial();??????? }
??????? public UiBindList _list { get; set; }
??????? private void Initial()??????? {??????????? _list = new UiBindList { SynchronizationContexts = SynchronizationContext.Current };??????????? dataGridView1.DataBindings.Add("DataSource", this, "_list", false, DataSourceUpdateMode.OnPropertyChanged);
??????????? new Thread(() =>??????????? {??????????????? while (true)??????????????? {??????????????????? Thread.Sleep(1000);??????????????????? _list.Add(new OBJ { Name = "C#" });??????????????? }??????????? })??????????? {??????????????? IsBackground = true,??????????? }??????????? .Start();??????? }??? }
??? public class UiBindList : BindingList??? {??????? public SynchronizationContext SynchronizationContexts { get; set; }
??????? public void Excute(Action action, object state = null)??????? {??????????? if (SynchronizationContexts == null)??????????????? action();??????????? else??????????????? SynchronizationContexts.Post(p => action(), state);??????? }
??????? public new void Add(T item)??????? {??????????? Excute(() => base.Add(item));??????? }
??????? public new void Remove(T item)??????? {??????????? Excute(() => base.Remove(item));??????? }??? }
??? public class OBJ { public string Name { get; set; } }
在Add方式中 報(bào)錯(cuò)??!對(duì)象的當(dāng)前狀態(tài)使該操作無(wú)效。
4 回答

慕妹3146593
TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
public?new?void?Add(T?item)
????????{
????????????Excute(()?=>?Add(item));
????????}
????????public?new?void?Remove(T?item)
????????{
????????????Excute(()?=>?Remove(item));
????????}這兩個(gè)方法去掉base.的引用就好了,改為上面的調(diào)用

慕容3067478
TA貢獻(xiàn)1773條經(jīng)驗(yàn) 獲得超3個(gè)贊
while (true)??????????????? {??????????????????? Thread.Sleep(1000);??????????????????? _list.Add(new OBJ { Name = "C#" });??????????????? }
_list.Add(new OBJ { Name = "C#" });這句沒(méi)有寫括號(hào),_list.Add(new OBJ(){Name="C#"});
- 4 回答
- 0 關(guān)注
- 461 瀏覽
添加回答
舉報(bào)
0/150
提交
取消