gpt4 book ai didi

c# - 将 List 绑定(bind)到 WinForms-Listbox

转载 作者:太空宇宙 更新时间:2023-11-03 17:39:33 24 4
gpt4 key购买 nike

我有一个关于数据绑定(bind)的小问题(可能是愚蠢的)。我尝试绑定(bind)一个列表

List<double> _measuredValues = new List<double>();

到 winforms 列表框。

在 Form_Load 中我设置:

lstMeasuredValues.DataSource = _measuredValues;

当我更新值时,没有任何显示?!

_measuredValues.Add(numBuffer);

我想到的一件事是数据类型问题。但是如何更改类型才能将其更改为字符串?

lstMeasuredValues.DataSource = _measuredValues.ToString().ToList();

另一个原因可能是上面的代码行在另一个线程中。但我认为这不应该是问题所在。

如何绑定(bind)这个列表?

最佳答案

When I update the values, nothing appears?!

_measuredValues.Add(numBuffer);

为了让 UI 反射(reflect)数据源的修改,数据源必须提供某种更改通知。 WinForms 列表数据绑定(bind)基础结构使用 ListChanged eventIBindingList Interface .提供了一个标准BindingList<T> class可以用来代替 List<T>以获得所需的行为。你所需要的只是改变这一行

List<double> _measuredValues = new List<double>();

BindingList<double> _measuredValues = new BindingList<double>();

Another reason might be that the upper line of code is within another thread. But I think this should not be the problem.

这样不好。你必须确保你不会那样做,因为ListChanged预计将在 UI 线程上引发事件。

关于c# - 将 List<Double> 绑定(bind)到 WinForms-Listbox,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34770189/

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