gpt4 book ai didi

c# - 绑定(bind)到队列 。 UI永不更新

转载 作者:太空狗 更新时间:2023-10-29 18:03:42 25 4
gpt4 key购买 nike

我绑定(bind)了一个ListBoxQueue<string> .当我对项目进行排队/出队时,ListBox不更新。

我有入队/出队助手来提高属性变化

protected void EnqueueWork(string param)
{
Queue.Enqueue(param);
RaisePropertyChanged("Queue");
}

protected string DequeueWork()
{
string tmp = Queue.Dequeue();
RaisePropertyChanged("Queue");
return tmp;
}

最佳答案

你实现了 INotifyCollectionChanged 了吗?您需要它来通知诸如从集合中添加或删除项目等操作。

这里是队列的简单实现:

public class ObservableQueue<T> : INotifyCollectionChanged, IEnumerable<T>
{
public event NotifyCollectionChangedEventHandler CollectionChanged;
private readonly Queue<T> queue = new Queue<T>();

public void Enqueue(T item)
{
queue.Enqueue(item);
if (CollectionChanged != null)
CollectionChanged(this,
new NotifyCollectionChangedEventArgs(
NotifyCollectionChangedAction.Add, item));
}

public T Dequeue()
{
var item = queue.Dequeue();
if (CollectionChanged != null)
CollectionChanged(this,
new NotifyCollectionChangedEventArgs(
NotifyCollectionChangedAction.Remove, item));
return item;
}

public IEnumerator<T> GetEnumerator()
{
return queue.GetEnumerator();
}

IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}

关于c# - 绑定(bind)到队列 <string>。 UI永不更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4266654/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com