繁体   English   中英

如何动态更改Textblock

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM