第534篇--Prism 事件模式

本文讲述Prism模架中经常使用的一个技巧,事件模式(自己发明的,呵呵):即我们在ViewModel中引用一个Service, 并且在Constructor的时候,订购该Service的事件,然后在ViewModel中的Command调用Service.TriggerEvent之类方法,触发事件。

 下面是总体框架图: 

ViewModel code snippet:

 /// <summary>
        /// 用注入方式获得Service的实例
        /// </summary>
        /// <param name="textService"></param>
        public ModuleAViewOneViewModel(ITextService textService)
        {
            this.textService = textService;

            //初始期订阅事件
            this.textService.TextChanged += (s, e) =>
            {
                if (PropertyChanged != null)
                {
                    //PropertyChanged(this, new PropertyChangedEventArgs("Text"));
                    this.View.Background = Brushes.AntiqueWhite;
                }
            };
        }

Command触发事件:

 void OnTextChanged(string newText)
        {
            textService.SetText(newText);
        }

Demo下载地址:https://skydrive.live.com/#cid=6B286CBEF1610557&id=6B286CBEF1610557!700

posted @ 2013-04-06 20:39  Shanghai Jim Zhou  阅读(509)  评论(0编辑  收藏  举报