C# 使用队列作为数据源

C# 使用队列作为数据源,c#,data-binding,C#,Data Binding,我想在Windows窗体的Gridview中显示队列中的项目。我可以将Gridview的datasource属性设置为队列,但它不会自动更新。我知道我可以使用BindingList类,但这样我就失去了Queue功能 是否有任何方法可以组合这两个类,或者我必须在派生类中实现其中一种行为 我所做的是处理一个项目列表,我想在网格中显示剩余的项目。数据不应由用户更改,但我希望GridView随着队列内容的更改而更新 例如: 形式: Proccessor pro = new Processor(); gr

我想在Windows窗体的Gridview中显示队列中的项目。我可以将Gridview的datasource属性设置为
队列
,但它不会自动更新。我知道我可以使用
BindingList
类,但这样我就失去了
Queue
功能

是否有任何方法可以组合这两个类,或者我必须在派生类中实现其中一种行为

我所做的是处理一个项目列表,我想在网格中显示剩余的项目。数据不应由用户更改,但我希望GridView随着队列内容的更改而更新

例如:

形式:

Proccessor pro = new Processor();
gridview.DataSource = pro.Items;
课堂上:

class Proccessor {
    Queue<DataBlock> _queue = new Queue();

    public Queue<DataBlock> Items  { 
        get { 
            return _queue;
        }
    }

    public void AutoProcess() {
        while (_queue.Count > 0) {
            Process(_queue.Dequeue());
        }
    }

    private void Process(DataBlock db) { ... }
}
类处理器{
队列_Queue=新队列();
公共队列项目{
获取{
返回队列;
}
}
public void AutoProcess(){
而(_queue.Count>0){
进程(_queue.Dequeue());
}
}
私有无效进程(数据块数据库){…}
}

队列的全部用途是只能在一个位置添加条目。因此,将其绑定到UI网格以便更新的想法是,呃,有趣的-UI应该是什么样子


<>你一定要考虑你自己的自定义集合,或者如你所说的,从BIDENLIST列表中派生出来,并相应地处理,例如CuffelNew。有关详细信息,请参阅。

我将队列子类化为QueueForDisplay。构造函数将采用视图控件。我会覆盖入队和出队方法。在这些覆盖中,我将更新视图控件。如果您不喜欢紧密耦合,可以简单地将队列子类化为QueueWithEvents,并提供OnEnqueue和OnDequeue事件。

在我自己两次误解了这个问题后,我想我应该尝试澄清一下您想要的是什么。:)