我正在开发一个WPF应用程序,其中我必须显示一个80毫秒的控件,然后隐藏。
有16个控件及其各自的ViewModel,并且在每个viewmodel中都有一个计时器(System.Timers.Timer)和CLR属性,它绑定到控件的Visibilty。
当值大于0时,计时器开始,并将CLR属性设置为Visible,并在80毫秒后触发Elapsed事件,将属性设置为Collapsed。
在下面的代码中,在400毫秒之后调用Method1()。
例如:
public class ExampleViewModel : ViewModelBase
{
Timer timer;
private Visibility _isVisibile = Visibility.Collapsed;
public Visibility IsVisibile
{
get { return _isVisibile; }
set { SetField(ref _isVisibile, value, () => IsVisibile); }
}
public ExampleViewModel()
{
timer = new Timer();
timer.Interval = 80;
timer.Elapsed += Timer_Elapsed;
}
private void Timer_Elapsed(object sender, ElapsedEventArgs e)
{
IsVisibile = Visibility.Collapsed;
timer.Stop();
}
public void Method1(int value)
{
if (value > 0)
{
IsVisibile = Visibility.Visible;
timer.Start();
}
}
}
每次都会触发IsVisible的属性更改事件,但如果有超过2个控件,则不会在80毫秒内反映在UI上。
更新控件的可见性绑定需要多长时间? 如何在几毫秒内实现更新绑定,以便它可以与所有16个并行控件一起使用。
提前致谢。