gpt4 book ai didi

c# - 在 WPF 窗口中显示时间

转载 作者:行者123 更新时间:2023-12-01 20:22:09 34 4
gpt4 key购买 nike

我正在创建一个 WPF 应用程序,我想要一个名为 SystemTimeLabel 的标签来显示时间。时间,如时间。我希望它显示当前时间,而不仅仅是加载时间。 (所以,就像,你可以看到数字时钟滴答作响。)我认为 while 语句可以解决这个问题,但我意识到它不会。有什么想法吗?

最佳答案

如果您想遵循 MVVM 模式,日期时间的主要问题是它没有实现 INotifyPropertyChanged。因此,虽然您可以将日期时间属性绑定(bind)到标签,但它不会自动更新。因此,您只需要在 View 模型中为日期时间属性实现更新通知。因此,创建一个带有更改通知的公共(public)属性,并启动一个计时器,每半秒左右更新该属性。然后将标签的内容绑定(bind)到该属性。

public class MyViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private DateTime _now;

public MyViewModel()
{
_now = DateTime.Now;
DispatcherTimer timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromMilliseconds(500);
timer.Tick += new EventHandler(timer_Tick);
timer.Start();
}

public DateTime CurrentDateTime
{
get {return _now;}
private set
{
_now = value;
PropertyChanged(this, new PropertyChangedEventArgs("CurrentDateTime"));
}
}

void timer_Tick(object sender, EventArgs e)
{
CurrentDateTime = DateTime.Now;
}

}

<Label x:Name="SomeLabel" Content="{Binding CurrentDateTime}" ContentStringFormat="yyyy-MM-dd HH:mm:ss" />

关于c# - 在 WPF 窗口中显示时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37090855/

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