2012-01-18 68 views
1

我有一個標準的C#隊列,聲明如下:如何在C#/ Winforms中將隊列綁定到DataGridView?

private Queue<DeployJob> _solutionQueue = new Queue<DeployJob>(); 

現在我想這個隊列綁定到一個DataGridView的,這是擺一個winform內。使用「綁定」,我的意思是每次我dequeueenqueue隊列中的一個項目DataGridView得到更新(以便它始終代表隊列的狀態)。

我曾嘗試這種方式將其綁定:

jobGridView.DataSource = _solutionQueue; 

但它不工作,即使我用updaterefresh方法。如果你需要更多的代碼,請隨時問:)

回答

3

MSDNDataGridView.DataSource必須實現以下接口之一:

  • IList
  • IListSource
  • IBindingList
  • IBindingListView

Queue<T>類實現了IList的父接口,包括IEnumerableICollection,但不包括IList本身。

一個建議是使用LINQ創建隊列中的List<DeployJob>並綁定像這樣:

using System.Linq;  

//code 

jobGridView.DataSource = _solutionQueue.ToList(); 

你想確保並處理更新/修改隊列中的任何事件,並重新綁定將DataGridView添加到新創建的列表中

相關問題