widnows phone多线程更新UI

aidyliuliu 2014-01-21 10:35:49
我有比如说ABC三个页面,页面数据取自于数据库,方式是通过Linq查询得到的,当应用启动后开启一个线程自动从服务端获取数据,问题是,我要在获取数据完成后不论当前处于哪个UI,都能得到通知重新执行查询,更新UI。
...全文
751 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
骑猪看海 2014-01-24
  • 打赏
  • 举报
回复
引用 3 楼 aidyliuliu 的回复:
我知道了,其实只要再写个类,类里面写个事件,像这样
public delegate void NoticeEeventHandler(object sender, NoticeEventArgs e);
    public class SyncCompleteNotice
    {
        string curr_NoticeTag;
        public event NoticeEeventHandler NoticeTest;

        public string Curr_char
        {
            get { return curr_NoticeTag; }
            set
            {
                if (NoticeTest != null)
                {
                    NoticeEventArgs myenen = new NoticeEventArgs(value);
                    curr_NoticeTag = myenen.NoticeTag;
                    this.NoticeTest(this, myenen);
                }
            }
        }
    }

    public class NoticeEventArgs : EventArgs
    {
        public string NoticeTag;
        public NoticeEventArgs(string noticeTag)
        {
            this.NoticeTag = noticeTag;
        }
    }
在app.cs中,public static SyncCompleteNotice SyncNotice = new SyncCompleteNotice(); 然后各个页面的OnNavigatedTo中注册事件,App.SyncNotice.NoticeTest += SyncNotice_NoticeTest; 还要记得在OnNavigatedFrom中取消注册事件,App.SyncNotice.NoticeTest -= SyncNotice_NoticeTest; 完事
SyncNotice_NoticeTest是什么东东,求解
aidyliuliu 2014-01-23
  • 打赏
  • 举报
回复
我知道了,其实只要再写个类,类里面写个事件,像这样
public delegate void NoticeEeventHandler(object sender, NoticeEventArgs e);
    public class SyncCompleteNotice
    {
        string curr_NoticeTag;
        public event NoticeEeventHandler NoticeTest;

        public string Curr_char
        {
            get { return curr_NoticeTag; }
            set
            {
                if (NoticeTest != null)
                {
                    NoticeEventArgs myenen = new NoticeEventArgs(value);
                    curr_NoticeTag = myenen.NoticeTag;
                    this.NoticeTest(this, myenen);
                }
            }
        }
    }

    public class NoticeEventArgs : EventArgs
    {
        public string NoticeTag;
        public NoticeEventArgs(string noticeTag)
        {
            this.NoticeTag = noticeTag;
        }
    }
在app.cs中,public static SyncCompleteNotice SyncNotice = new SyncCompleteNotice(); 然后各个页面的OnNavigatedTo中注册事件,App.SyncNotice.NoticeTest += SyncNotice_NoticeTest; 还要记得在OnNavigatedFrom中取消注册事件,App.SyncNotice.NoticeTest -= SyncNotice_NoticeTest; 完事
gnimgnot 2014-01-21
  • 打赏
  • 举报
回复
1,如果要得到通知就需要订阅事件,那么这个事件就必须在你需要的时候触发。 2,要注意线程的生命周期。
aidyliuliu 2014-01-21
  • 打赏
  • 举报
回复
引用 1 楼 cuit 的回复:
1,如果要得到通知就需要订阅事件,那么这个事件就必须在你需要的时候触发。 2,要注意线程的生命周期。
求详解

7,655

社区成员

发帖
与我相关
我的任务
社区描述
Windows Phone是微软发布的一款手机操作系统,它将微软旗下的Xbox LIVE游戏、Zune音乐与独特的视频体验整合至手机中。
社区管理员
  • Windows客户端开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧