本文讲述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