gpt4 book ai didi

c# - WPF 高频数据绑定(bind)

转载 作者:行者123 更新时间:2023-11-30 12:18:30 24 4
gpt4 key购买 nike

我有一个数据库,其中有一个表记录来自各种来源的数据。3 列

'来源' '值(value)' '时间戳'

例如

source1 21 '11:03'

source6 22 '11:03'

source9 456 '11:03'

该表每秒更新 2 到 3 次。每个值可能会或可能不会更改。每个“源”值都显示在屏幕上的单独标签或文本框中(而不是在网格中)。我需要找到将这些数据绑定(bind)到 WPF 控件的最佳方法。我应该用什么类型的对象来保存 Dictionary、DataTable 等中的数据。

什么类型的对象将保存数据?如何将我的 Label 或 TextBox 绑定(bind)到该值。

我每秒查询 2 到 4 次资源。绝大多数时候数据库表中的值不会改变通常只有一个值发生变化有时他们都会改变我只希望拥有最多约 30 个独特的数据源。

请戴上你的思维帽。

最佳答案

碰巧我正在解决一个非常相似的问题。像我一样,我假设您正在后台线程中更新数据。

收藏

使用 MTObservableCollection 而不是 ObservableCollection 来存储数据。 ObservableCollection 通常用于可以更改的数据绑定(bind),但它不能从后台线程更新。 MTObservableCollection 对我有用,但它不是继承线程安全的,所以要小心。

http://www.julmar.com/blog/mark/2009/04/01/AddingToAnObservableCollectionFromABackgroundThread.aspx

模型

每个对象都应该实现 INotifyPropertyChanged 接口(interface)。这将使它们支持数据绑定(bind)。此外,WPF 允许您以这种方式在后台线程上更新属性。

http://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged.aspx

优先更新而不是清除和添加

确保在可能的时候总是更新对象。不要只是清除集合并重新加载它,这将非常昂贵并且会导致不利的 UI 效果。当然,您可以在需要时进行单独的添加和删除。

关于c# - WPF 高频数据绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2143951/

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