[英]how to dynamically change Textblock
我是WPF和C#的新手。 尝试进行实时通知,我有一个文本块,其中包含来自网页的最新信息。每隔5分钟,我会收到新信息,该信息应该显示在文本块上,我已经成功接收到信息,但是当我将其设置为textblock的属性时,它没有变化,它仍然显示第一个收到的信息。 我的代码:
async void GetChanges()
{
Rootobject allEarthquakes = await Async();
int count = allEarthquakes.features.Length;
LastData.Text = "Последнее землетрясение: \nМагнитуда: " + allEarthquakes.features[count - 1].properties.mag + "\nРасположение: " + allEarthquakes.features[count - 1].properties.place + "\nВремя: " + DateTimeOffset.FromUnixTimeMilliseconds(allEarthquakes.features[count - 1].properties.time) + "\nГлубина: " + allEarthquakes.features[count - 1].geometry.coordinates[2] + "\nID: " + allEarthquakes.features[count - 1].id;
}
Task<Rootobject> Async()
{
string path = @"C:\data\data.json";
string json;
string url = @"https://earthquake.usgs.gov/earthquakes/feed/v1.0/summary/all_day.geojson";
using (WebClient client = new WebClient())
{
json = client.DownloadString(url);
}
Rootobject allEarthquakes = JsonConvert.DeserializeObject<Rootobject>(json);
int count = allEarthquakes.features.Length;
if (File.Exists(path))
{
File.Delete(path);
}
Directory.CreateDirectory(@"C:\data");
using (StreamWriter stream = File.CreateText(path))
{
stream.Write(json);
}
return Task.Run(() =>
allEarthquakes);
}
哪里,LastData是Textblock
如果在更改选项卡时TextBlock刷新,则听起来像是您未实现INotifyPropertyChanged接口。 通常,您将像这样在xaml中绑定TextBlock.Text
<TextBlock Text={Binding UpdateText} />
然后在您的代码中有一些字符串属性UpdateText,请参阅此MSDN文章。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.