gpt4 book ai didi

c# - 如何推迟 WPF 文本框中的更新

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

从 .NET 4.5 开始,BindingBase 类现在包含一个 Delay 属性。这允许设置一个整数,表示框架在更新数据源之前将等待的毫秒数。但是,我希望框架在更新 UserControl 之前等待。换句话说,我正在寻找一种方法来实现类似于 Delay 属性的东西,但相反

在我的特定情况下,我有一个绑定(bind)到 Double 值的 TextBox。由于源变化很快,用户无法发现 TextBox 中的值。

我考虑过将 Filter 实现到 IValueConverter 的实现中。不幸的是,这不起作用,因为我在一个列表框中排列了多个文本框。由于它们都使用相同的 ValueConverter 对象,因此我无法将先前值的队列存储到该 ValueConverter 中。

是否有一种通用的方法来过滤 WPF 文本框的文本属性,以便在源值变化非常快时用户可以真正看到内容?

最佳答案

在您的情况下,您可以使用 秒表 来跳过某些更改。

private readonly Stopwatch _watch;
private double _yourValue;

public Ctor()
{
_watch = Stopwatch.StartNew();
}

public double YourValue
{
get { return _yourValue; }
set
{
if (Math.Abs(value - _yourValue) < Double.Epsilon) return;
// Always save value
_yourValue = value;
// Only trigger notification after a certain amount of time
// (e.g. once every second)
if (_watch.ElapsedMilliseconds > 1000)
{
OnPropertyChanged();
_watch.Restart();
}
}
}

关于c# - 如何推迟 WPF 文本框中的更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29162215/

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