如何从Windows 10中的非UI线程刷新UI

时间:2016-04-25 14:50:02

标签: c# multithreading win-universal-app windows-10-universal windows-10-mobile

我正在使用从服务器获取自己内容的应用程序。每X秒必须检查是否有更改,如果有,则刷新相关屏幕。

我正在尝试从检查是否已上传任何更改的线程刷新UI,但事实是代码已执行但视图不是 刷新。

以下是代码示例:

//检查服务器中的更改的类

await Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,
                () =>
                {
                    //Page that has to refresh its UI
                    Home h = new Home();
                    h.RefreshData(update);
                });
                break;

//HOME Page
public void RefreshData(PushElement update)
        {
            _source.Clear(); //ObservableCollection<UserControl>, is the ItemsSource of the Main ListView of the Home page
            NotifyPropertyChanged();
            setContentFromProps("URL_HOME"); //Function that fills back the ListView
        }

//Property bound to ItemsSource in the XAML
    public ObservableCollection<UserControl> Source
            {
                get
                {
                    return _source;
                }
                set
                {
                    _source = value;
                    NotifyPropertyChanged();
                }
            }

如果我放置一个断点,代码就会被执行,但UI却永远不会刷新。我尝试了很多方法,但没有成功...... 我怎么能实现它?

提前致谢!

0 个答案:

没有答案