- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 WPF/C# 应用程序中有一个绑定(bind)到 Entity Framework 集合的 DataGrid。每行都有变化非常频繁的绑定(bind)列 - 每秒多次。这导致该列基本上不可读,因为它经常更改。如何强制 WPF 每 .5 秒或 1 秒仅显示一个新值,即使该值每 .1 秒更改一次?
例如
dataGrid.MaxRefreshRate = 1000; (value in milliseconds).
最佳答案
我认为您需要在数据和数据网格之间创建一个层。
假设您的数据是 List
我们需要为您的数据提供一些包装类(在本例中为一行)。这个包装器延迟属性更改并定期触发它。注意:我在没有任何测试的情况下用心写了这段代码,可能(并且将会)存在错误。它也不是线程安全的,您需要在使用列表时添加一些锁。但要击中重点。
public class LazyRecord : INotifyPropertyChanged
{
private string name;
public string Name
{
get { return name; }
set
{
if (name != value)
{
name = value;
OnPropertyChanged("Name");
}
}
// other properties
// now the important stuff - deffering the update
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
if (this.changedProperties.Find(propertyName) == null)
this.changedProperties.Add(propertyName);
}
private readonly List<string> changedProperties = new List<string>();
// and the timer that refreshes the data
private readonly Timer timer;
private readonly Record record;
public LazyRecord(Record record)
{
this.timer = new Timer(1000, OnTimer);
this.record = record;
this.record.OnPropertyChanged += (o, a) => this.OnPropertyChanged(a.PropertyName);
}
public void OnTimer(..some unused args...)
{
if (this.PropertyChanged != null)
{
foreach(string propNAme in changedProperties)
{
PropertyChanged(new PropertyChangedEventArgs(propName));
}
}
}
在此之后,只需从您的 List< Record > 创建一个 List< LazyRecord > 并将其用作您的数据源。显然,使用通用解决方案很简单,它的可重用性要高得多。希望我有所帮助。
关于c# - 降低绑定(bind)DataGrid的刷新率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4448916/
我正在编写一个小应用程序供我自己使用,它将使用公开发布的 RSS 提要。 据我所知,协议(protocol)中没有订阅/发布机制;我需要定期让我的应用程序 HTTP-GET RSS 提要。 如果是这样
我正在使用 requestAnimationFrame 在我的游戏中绘制玩家。其中一名球员比其他人移动得更快。我和他核对了一下,他告诉我他的显示器有 120hz 的刷新率。我假设这意味着 has 可以
我正在使用 onTouch(View arg0, MotionEvent arg1)作为游戏输入。它返回 false 所以它没有被处理。在我运行 4.0.4 的 HTC HD2 上,这足以让播放器足够
是否所有 RSS 提要都支持 HTTP ETags/last-modified header 用于指示提要是否已更新? 对于不包含最后修改标题的提要,确定提要更新频率的最佳方法是什么? 我希望根据每个
几个月来,我一直在将应用程序上传到 Google Play。我已经在我所有的 ~30 个应用程序中添加了 Admob 横幅广告。我将在本月收到第一笔付款,我将在 1 月份收到“大笔”付款(+2000
过去几天我一直在研究 Estimote Beacons。我开始怀疑 iBeacon 的有效性,因为它们在确定 Beacon 位置时存在高延迟。 当您移动 2-3 米时,它需要几秒钟才能找到正确的位置。
我目前正在为我的大学研究项目开发 Android 应用程序。此应用程序应该能够读取附近 GSM 基站的 RSSI 级别。我编写了以下函数,它成功读取了附近小区的 RSSI 电平。我每 200 毫秒调用
代码如下: Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nInd
所以我正在为 DOS 提示符开发老式 ASCII 游戏,你问值得我花时间吗?我想说的是,它是怀旧的。无论如何,自从我重新开始并重新学习如何直接访问屏幕内存以来,我一直享受着很多乐趣,直到最近我的游戏刷
如果我以尽可能高的精度单独使用 CoreLocation,我会每秒或 1Hz 获得一次更新。但是,如果我有一个刷新率为 10Hz 的外部蓝牙连接 GPS 单元,我仍然只会在 1Hz 时收到来自 Cor
我正在研究高速率渲染帧(理想情况下接近最大监视器速率),我想知道是否有人知道我应该在哪个级别开始研究:内核/驱动程序级别(操作系统空间)? X11级? svgalib(用户空间)? 最佳答案 在现代计
我正在创建一个多显示器全屏 DXGI/D3D 应用程序。我正在枚举可用的输出和适配器,以准备创建它们的交换链。 使用 DXGI 的 IDXGIFactory::CreateSwapChain 创建我的
在大多数教程或建议中,60 fps 的值被列为应用程序要达到的最终刷新率。 IE。如果该应用能够以 60 fps 的速度持续提供用户体验,则没有更多改进空间。 但是,对于较新的设备,例如哪些 iPad
我是一名优秀的程序员,十分优秀!