ç®æ¬¡
- ã¯ããã«
- Prismã¢ããªã±ãŒã·ã§ã³ã®åæå
- ã³ã³ããŒãã³ãéã®äŸåé¢ä¿ã®ç®¡ç
- ã¢ãžã¥ã©ãŒã¢ããªã±ãŒã·ã§ã³éçº
- MVVMãã¿ãŒã³ã®å®è£
- é«åºŠãªMVVMã·ããªãª
- ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®äœæ
- ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã®ã¬ã€ãã©ã€ã³
- ããã²ãŒã·ã§ã³
- ãã¥ãŒããŒã¹ã®ããã²ãŒã·ã§ã³
- ççµåã³ã³ããŒãã³ãéã®çžäºäœçš
å€§èŠæš¡ã§è€éãªã¢ããªã±ãŒã·ã§ã³ãäœæããå Žåãéåžžã®æ¹æ³ã¯ãæ©èœãåå¥ã®ã¢ãžã¥ãŒã«ã«åé¢ããããšã§ãã ãŸãããããã®ã¢ãžã¥ãŒã«éã®éçãªã³ã¯ã®æ°ãæå°éã«ããããšããå§ãããŸãã ããã«ãããã¢ãžã¥ãŒã«ãåå¥ã«éçºããã¹ããå±éãããã³æŽæ°ã§ããŸãã ããã¯ãã¹ãŠãã¢ãžã¥ãŒã«ãççµåã®æ¹æ³ã§çžäºäœçšããå¿
èŠæ§ã«ã€ãªãããŸãã
ã¢ãžã¥ãŒã«éã®çžäºäœçšã®ã¢ãã«ãæ§ç¯ããå Žåãç¹å®ã®ã·ããªãªã«ã©ã®ã¢ãããŒããé©çšããããç¥ãããã«ãã¢ãããŒãéã®éããç¥ãå¿
èŠããããŸãã Prismã©ã€ãã©ãªã¯ã次ã®ã¢ãããŒããæäŸããŸãã
- ã³ãã³ãã®äœ¿çšïŒ Solution commanding ïŒã ãŠãŒã¶ãŒã®ã¢ã¯ã·ã§ã³ã«å¿çããããã«äœ¿çšããŸãã
- ãªãŒãžã§ã³ã®ã³ã³ããã¹ã ïŒ Region context ïŒã ãã¹ãã³ã³ãããŒã«ãããªãŒãžã§ã³å
ã®ãã¥ãŒã«ã³ã³ããã¹ãæ
å ±ãæž¡ãããã«äœ¿çšããŸãã ãã®ã¢ãããŒãã¯
DataContext
å€å°äŒŒãŠããŸãããããã«äŸåããŠããŸããã - å
±æãµãŒãã¹ ãµãŒãã¹ã®ã¡ãœãããåŒã³åºããšãåä¿¡è
ããµãã¹ã¯ã©ã€ãã§ããã€ãã³ããçæãããŸãã ä»ã®ãã¹ãŠã®ã¢ãããŒããé©çšã§ããªãå Žåã¯ããã®ã¢ãããŒãã䜿çšããŠãã ããã
- ã€ãã³ãéçŽ ã¡ãã»ãŒãžã«å¯ŸããçŽæ¥çãªåå¿ãæåŸ
ã§ããªãå Žåã«ããã¬ãŒã³ããŒã·ã§ã³ã¢ãã«ããã¬ãŒã³ã¿ãŒããŸãã¯ã³ã³ãããŒã©ãŒéã§ã¡ãã»ãŒãžã転éããããã
ã³ãã³ãã®äœ¿çšïŒ Solution commanding ïŒ
ãã¿ã³ãã¯ãªãã¯ãããªã©ã®ãŠãŒã¶ãŒãžã§ã¹ãã£ã«å¿çããå¿
èŠãããå Žåãããã³ã¢ããªã±ãŒã·ã§ã³ããžãã¯ã«åºã¥ããŠã³ã³ãããŒã«ã®å¯çšæ§ãå¶åŸ¡ããå Žåã¯ãã³ãã³ãã䜿çšããŸãã
WPFã¯ããã¿ã³ãã¡ãã¥ãŒé
ç®ãªã©ã®ã³ãã³ããåŒã³åºãã³ã³ãããŒã«ããããŒããŒããã©ãŒã«ã¹ãæã€çŸåšã®é
ç®ã«é¢é£ä»ããããã³ãã³ããã³ãã©ãŒã«é¢é£ä»ããã®ã«é©ããã«ãŒãã£ã³ã°ã³ãã³ãïŒ
RoutedCommand
ïŒãæäŸããŸãã
ãã ããè€åã¢ããªã±ãŒã·ã§ã³ã®ã·ããªãªã§ã¯ãã€ãã³ããã³ãã©ãŒã¯ãããžã¥ã¢ã«ããªãŒã«é¢é£ããèŠçŽ ããªããããã©ãŒã«ã¹ã®ãªããã¬ãŒã³ããŒã·ã§ã³ã¢ãã«ã§ããããšããããããŸãã ãã®ãããªã·ããªãªããµããŒãããããã«ãPrismã«ã¯ãã³ãã³ãã®å®è¡æã«ããªã²ãŒããåŒã³åºãããšãã§ãã
DelegateCommand
ã¯ã©ã¹ãšãè€æ°ã®ã³ãã³ãã1ã€ã«çµåã§ãã
CompositeCommand
ã¯ã©ã¹ãçšæãããŠããŸãã ãããã®ã¯ã©ã¹ã¯ãã³ãã³ãåŠçãããžã¥ã¢ã«ããªãŒã®äžäžã«ã«ãŒãã£ã³ã°ãã
RoutedCommand
ã¯ã©ã¹ãšã¯ç°ãªããŸãã ããžã¥ã¢ã«ããªãŒã§ã³ãã³ããéå§ããããé«ãã¬ãã«ã§åŠçã§ããŸãã
CompositeCommand
ã¯ã©ã¹ã¯
ICommand
ã€ã³ã¿ãŒãã§ã€ã¹ãå®è£
ããŠãããããã³ã³ãããŒã«ã«ãã€ã³ãã§ããŸãã
CompositeCommands
ã¯ã©ã¹ã¯ãããã€ãã®åã³ãã³ãã«é¢é£ä»ããããšãã§ããŸãã
CompositeCommand
å®è¡ãããšãåã³ãã³ããå®è¡ãããŸãã
CompositeCommand
ã¯ã©ã¹ã¯ã¢ã¯ãã£ããŒã·ã§ã³ããµããŒãããŸãã
CanExecuteChanged
ã€ãã³ã
CanExecuteChanged
ãããèªäœããã®ã€ãã³ããçæããŸãã ãã®åŸãé¢é£ä»ããããã³ã³ãããŒã«ã¯
CanExecute
ã¡ãœãããåŒã³åºããŸãã
CompositeCommand
ã
CanExecute
ã¡ãœãããåŒã³åºããŠããã¹ãŠã®åã³ãã³ããããŒãªã³ã°ããŸãã ã³ãã³ãã
false
è¿ãå Žåã
CompositeCommand
ã
false
è¿ããããã³ã³ãããŒã«ãéã¢ã¯ãã£ãã«ãªããŸãã
Prismã©ã€ãã©ãªããŒã¹ã®ã¢ããªã±ãŒã·ã§ã³ã§ã¯ã
Save ã
Save Allã Cancelãªã©ãã¢ããªã±ãŒã·ã§ã³å
šäœã§æå³ã®ããã°ããŒãã«
CompositeCommand
ã³ãã³ããã·ã§ã«ã§å®çŸ©ã§ã
ãŸã ã ã¢ãžã¥ãŒã«ã¯ãããŒã«ã«ããŒã ããããã®ã°ããŒãã«ããŒã ã«ç»é²ããå®è¡ã«åå ã§ããŸãã
WPFã«ãŒãã£ã³ã°ã€ãã³ã ïŒ ã«ãŒãã£ã³ã°ã€ãã³ã ïŒããã³ã«ãŒãã£ã³ã°ã³ãã³ã ïŒ ã«ãŒãã£ã³ã°ã³ãã³ã ïŒã«é¢ããæ³šæã
ã«ãŒãã£ã³ã°ã€ãã³ãã¯ãèŠçŽ ããªãŒã®ããŸããŸãªå Žæã«ããè€æ°ã®ãã³ãã©ãŒã§åŠçã§ãããšããç¹ã§ãéåžžã®ã€ãã³ããšã¯ç°ãªããŸãã WPFã«ãŒãã£ã³ã°ã€ãã³ãã¯ãããžã¥ã¢ã«ããªãŒã®ã¢ã€ãã éã§ã¡ãã»ãŒãžãéã³ãŸãã ããžã¥ã¢ã«ããªãŒã«ãªãèŠçŽ ã¯ããããã®ã³ãã³ããåŠçã§ããŸããã ã«ãŒãã£ã³ã°ãããã€ãã³ãã¯ãããžã¥ã¢ã«ããªãŒã®èŠçŽ éã®éä¿¡ã«äœ¿çšã§ããŸããããã¯ãã€ãã³ãããŒã¿ãã«ãŒãã®åèŠçŽ ã«ä¿åãããããã§ãã 1ã€ã®èŠçŽ ããã®ããŒã¿å
ã®äœãã倿Žããå¯èœæ§ãããããã®å€æŽã¯ã«ãŒãå
ã®æ¬¡ã®èŠçŽ ã§äœ¿çšã§ããŸãã
WPFã«ãŒãã£ã³ã°ã€ãã³ãã¯ã次ã®å Žåã«äœ¿çšã§ããŸããå
±éã®ã«ãŒãèŠçŽ ã«å
±éã®ãã³ãã©ãŒãèšå®ããå ŽåããŸãã¯ç¬èªã®ã³ã³ãããŒã«ã¯ã©ã¹ãäœæããå Žåã
å§ä»»ã³ãã³ãã®äœæ
ããªã²ãŒãã³ãã³ããäœæããã«ã¯ããã¥ãŒã¢ãã«ã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§
DelegateCommand
åã®ãã£ãŒã«ããäœæããã³åæåãã
ICommand
åã®ããããã£ãéããŠã¢ã¯ã»ã¹ã§ããããã«ããå¿
èŠããããŸãã
public class ArticleViewModel : NotificationObject { private readonly ICommand _showArticleListCommand; public ArticleViewModel(INewsFeedService newsFeedService, IRegionManager regionManager, IEventAggregator eventAggregator) { _showArticleListCommand = new DelegateCommand(this.ShowArticleList); } public ICommand ShowArticleListCommand { get { return _showArticleListCommand; } } }
ãæ³šæ
ãã£ãã«äœ¿çšãããªãã³ãã³ãã®å Žåãããããã£ã®get
ã¡ãœããã§çŽæ¥DelegateCommand
ããæ lazã«ãäœæããããšãçã«ããªã£ãŠããŸãã
public class ArticleViewModel : NotificationObject { private readonly ICommand _showArticleListCommand; public ArticleViewModel(INewsFeedService newsFeedService, IRegionManager regionManager, IEventAggregator eventAggregator) { } public ICommand ShowArticleListCommand { get { return _showArticleListCommand ?? ( _showArticleListCommand = new DelegateCommand(this.ShowArticleList) ); } } }
è€åã³ãã³ãã®äœæ
è€åã³ãã³ããäœæããã«ã¯ããã¥ãŒã¢ãã«ã®ã³ã³ã¹ãã©ã¯ã¿ãŒã§
CompositeCommand
åã®ãã£ãŒã«ããäœæããã³åæåãã
ICommand
åã®ããããã£ãä»ããŠã¢ã¯ã»ã¹å¯èœã«ããå¿
èŠããããŸãã
public class MyViewModel : NotificationObject { private readonly CompositeCommand _saveAllCommand; public ArticleViewModel(INewsFeedService newsFeedService, IRegionManager regionManager, IEventAggregator eventAggregator) { _saveAllCommand = new CompositeCommand(); _saveAllCommand.RegisterCommand(new SaveProductsCommand()); _saveAllCommand.RegisterCommand(new SaveOrdersCommand()); } public ICommand SaveAllCommand { get { return _saveAllCommand; } } }
ã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªããŒã ãäœæãã
éåžžãã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªã³ãã³ããäœæããã«ã¯ã
DelegateCommand
ã€ã³ã¹ã¿ã³ã¹ããŸãã¯
CompositeCommand
ãäœæããéçã¯ã©ã¹ãä»ããŠäœ¿çšã§ããããã«ããŸãã
public static class GlobalCommands { public static CompositeCommand MyCompositeCommand = new CompositeCommand(); }
次ã«ãã¢ãžã¥ãŒã«ã¯åããŒã ãã°ããŒãã«ããŒã ã«é¢é£ä»ããŸãã
GlobalCommands.MyCompositeCommand.RegisterCommand(command1); GlobalCommands.MyCompositeCommand.RegisterCommand(command2);
ãæ³šæ
ã³ãŒãã®ãã¹ãå®¹ææ§ãåäžãããããã«ãã¡ãã£ãšãŒã·ã§ã³ã¯ã©ã¹ã䜿çšããŠãã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªã³ãã³ãã«ã¢ã¯ã»ã¹ãããã¹ãã§ã¢ãã¯ã§ããŸãã
ã°ããŒãã«ã«ã¢ã¯ã»ã¹å¯èœãªããŒã ãžã®ãªã³ã¯
次ã®ã³ãŒãäŸã¯ããã¿ã³ãWPFã®ã°ããŒãã«ã³ãã³ãã«ãã€ã³ãããæ¹æ³ã瀺ããŠããŸãã
<Button Name="MyCompositeCommandButton" Command="{x:Static local:GlobalCommands.MyCompositeCommand}" Content="Execute My Composite Command"> </Button>
Silverlightã¯
x:static
ãµããŒããæäŸããªããããSilverlightã§ãã¿ã³ããã€ã³ãããã«ã¯ãæ¬¡ã®æé ã«åŸãå¿
èŠããããŸãã
- ãã¥ãŒã¢ãã«ã§ã¯ã
public
ã¯ã©ã¹ãäœæããŠãéçã¯ã©ã¹ã§æå®ãããã³ãã³ããåãåãå¿
èŠããããŸãã
public ICommand MyCompositeCommand { get { return GlobalCommands.MyCompositeCommand; } }
- éåžžããã¥ãŒã¢ãã«ã¯
DataContext
ïŒå¥ã®ã³ãŒããã¡ã€ã«ã§è¡ãããŸãïŒãä»ããŠãã¥ãŒã«é¢é£ä»ããããŸãã
view.DataContext = model;
- 次ã®XMLåå空éãã«ãŒãèŠçŽ ã«è¿œå ãããŠããããšã確èªããŸãã
xmlns:prism="clr-namespace:Microsoft.Practices.Prism.Commands;assembly=Microsoft.Practices.Prism"
- æ·»ä»ã®
Click.Command
ããããã£ã䜿çšããŠããã¿ã³ãã³ãã³ãã«ãã€ã³ãããŸãã
<Button Name="MyCommandButton" prism:Click.Command="{Binding MyCompositeCommand}" Content="Execute MyCommand"/> </Button>
ãæ³šæ
å¥ã®ã¢ãããŒãã¯ãã³ãã³ãããªãœãŒã¹ãšããŠApplication.Resources
ã»ã¯ã·ã§ã³ã®App.xamlãã¡ã€ã«ã«ä¿åããããšã§ãã ãã®åŸããã¥ãŒã§ãã€ã³ãããŸãã
<Button Name="MyCommandButton" prism:Click.Command="{Binding MyCompositeCommand, Source={StaticResource GlobalCommands}} Content="Execute MyCommand"/> </Button>
å°åã®ã³ã³ããã¹ã
é åïŒãã¹ãïŒã«é¢é£ä»ãããããã¥ãŒãšãã®é åã«ãããã¥ãŒã®éã§ã³ã³ããã¹ãæ
å ±ã転éããå¿
èŠãããå Žåãå€ãã®ã·ããªãªããããŸãã ããšãã°ã
ãã¹ã¿ãŒ/詳现ã¹ã¯ãªããã§ã¯ããã¥ãŒã«ã¯ãšã³ãã£ãã£ãšããã®ãšã³ãã£ãã£ã«é¢ããè¿œå æ
å ±ã衚瀺ããããªãŒãžã§ã³ã衚瀺ãããŸãã äžã®å³ã«ç€ºãããã«ãPrismã¯
RegionContext
ãšåŒã°ããæŠå¿µã䜿çšããŠããªãŒãžã§ã³å
ã®ãã¹ããšãã®ãªãŒãžã§ã³ã«ããŒãããããã¥ãŒã®éã§ãªããžã§ã¯ãã転éããŸãã

ã·ããªãªã«å¿ããŠãæ
å ±ïŒèå¥åãªã©ïŒãšã¢ãã«å
šäœã®äž¡æ¹ãè£åãããšãã§ããŸãã ãã¥ãŒã¯
RegionContext
ãåãåãã倿Žéç¥ãåŸ
ã€ããšããããŸãã ãã¥ãŒã¯
RegionContext
ã®å€ã倿Žããããšãã§ããŸãã
RegionContext
ãååŸããã³èšå®ããã«ã¯ãããã€ãã®æ¹æ³ããããŸãã
- XAMLã䜿çšã
RegionContext
é åã®RegionContext
èšå®ããŸãã - ã³ãŒãã§é åã®
RegionContext
èšå®ããŸãã - é åå
ã®ãã¥ãŒãã
RegionContext
ãååŸããŸãã
ãæ³šæ
çŸåšãPrismã¯ããã®ãã¥ãŒãDependencyObject
åå«ã§ããå Žåãé åå
ã®ãã¥ãŒããRegionContext
ãååŸããããšããµããŒãããŠããŸãã ãã¥ãŒãDependencyObject
ã§ãªãå ŽåïŒããšãã°ãããŒã¿ãã³ãã¬ãŒãã䜿çšããŠãã¥ãŒã¢ãã«ãé åã«çŽæ¥è¿œå ããå ŽåïŒãç¬èªã®RegionBehavior
ã¯ã©ã¹ãäœæããŠã RegionContext
ããã¥ãŒãªããžã§ã¯ãã«æž¡ãããšãæ€èšããŠãã ããã
DataContext
ããããã£ã«ã€ããŠæ³šæããŠãã ããã
ããŒã¿ã³ã³ããã¹ãã¯ãã³ã³ãããŒã«ã芪èŠçŽ ãããã€ã³ãããããã®ããŒã¿ãœãŒã¹æ
å ±ãç¶æ¿ã§ããããã«ããæŠå¿µã§ãã åèŠçŽ ã¯ã芪èŠçŽ ããDataContext
ãèªåçã«ç¶æ¿ããŸãã ããŒã¿ã¯ããžã¥ã¢ã«ããªãŒå
šäœã«åºãããŸãã
ãã¥ãŒã¢ãã«ãSilverlightã®ãã¥ãŒã«ãã€ã³ãããæè¯ã®æ¹æ³ã¯ã DataContext
ã䜿çšããDataContext
ã§ãã ããããã»ãšãã©ã®ã·ããªãªã§ã DataContext
ããããã£ã䜿çšããŠãã¥ãŒã¢ãã«ãæ ŒçŽããçç±ã§ãã ãã®ãããççµåãã¥ãŒéã®éä¿¡ã¡ã«ããºã ãšããŠDataContext
ã䜿çšããããšã¯ãå§ãããŸããã
å
±æãµãŒãã¹
ã¢ãžã¥ãŒã«éçžäºäœçšãå®è£
ããå¥ã®æ¹æ³ã¯ãå
±æãµãŒãã¹ã䜿çšããããšã§ãã ã¢ãžã¥ãŒã«ãããŒããããšãããã®ãµãŒãã¹ãDIã³ã³ããã«è¿œå ã§ããŸãã éåžžããµãŒãã¹ã¯ãå¥ã®ã¢ã»ã³ããªã«ããå
±éã®ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã³ã³ããããç»é²ããã³èŠæ±ãããŸãã ããã«ãããã¢ãžã¥ãŒã«ã¯ããããã®ã¢ãžã¥ãŒã«ãžã®éçãªã³ã¯ãå¿
èŠãšããã«ãä»ã®ã¢ãžã¥ãŒã«ãæäŸãããµãŒãã¹ã䜿çšã§ããŸãã ãµãŒãã¹ã€ã³ã¹ã¿ã³ã¹ã¯ãã¹ãŠã®ã¢ãžã¥ãŒã«ã«å
±éã§ãããããããŒã¿ã亀æããŠã¢ãžã¥ãŒã«éã§ã¡ãã»ãŒãžãéä¿¡ã§ããŸãã
Stock Trader RIã§ã¯ã
Marketã¢ãžã¥ãŒã«ã¯
IMarketFeedService
å®è£
ãæäŸããŸãã
Positionã¢ãžã¥ãŒã«ã¯ãã¢ããªã±ãŒã·ã§ã³ã·ã§ã«ã§å®çŸ©ãããDIã³ã³ããã䜿çšããŠãã®ãµãŒãã¹ã䜿çšããŸãã
IMarketFeedService
ä»ã®ã¢ãžã¥ãŒã«ã§ã®äœ¿çšãç®çãšããŠããããã
StockTraderRI.Infrastructureã®äžè¬ã¢ã»ã³ããªã«ãã
ãŸããããã®ç¹å®ã®å®è£
ã¯å
¬éãããŠã¯ãªããªãããã
Marketã¢ãžã¥ãŒã«ã§å®çŸ©ãããä»ã®ã¢ãžã¥ãŒã«ããç¬ç«ããŠå€æŽã§ããŸãã
ãããã®ãµãŒãã¹ãMEFã³ã³ãããŒã«ã©ã®ããã«ãšã¯ã¹ããŒãããããã確èªããã«ã¯ã
MarketFeedService.csããã³
MarketHistoryService.csãã¡ã€ã«ãåç
§ããŠãã ããã
Positionã¢ãžã¥ãŒã«ã®
ObservablePosition
ã¯ã©ã¹ã¯ãã³ã³ã¹ãã©ã¯ã¿ãŒã§ã®äŸåé¢ä¿æ³šå
¥ãéããŠ
IMarketFeedService
ãµãŒãã¹ãåãåããŸãã
[Export(typeof(IMarketFeedService))] [PartCreationPolicy(CreationPolicy.Shared)] public class MarketFeedService : IMarketFeedService, IDisposable { ... }
ãæ³šæ
äžèšã®äŸã«ç€ºãããã«ãäžéšã®DIã³ã³ããã§ã¯ã屿§ã䜿çšããŠäŸåé¢ä¿ãç»é²ã§ããŸãã ãã®ä»ã«ã¯ãæç€ºçãªç»é²ãå¿
èŠãªå ŽåããããŸãã ãã®ãããªå Žåãç»é²ã¯éåžžã IModule.Initialize
ã¡ãœããã§ã®ã¢ãžã¥ãŒã«ã®ããŒãäžã«è¡ãããŸãã 詳现ã«ã€ããŠã¯ãããŒã4ã ã¢ãžã¥ãŒã«åŒã¢ããªã±ãŒã·ã§ã³ã®éçº ããåç
§ããŠãã ããã
ã€ãã³ãéçŽ
Prismã©ã€ãã©ãªã¯ãã¢ããªã±ãŒã·ã§ã³å
ã®ççµåã³ã³ããŒãã³ãéã®çžäºéçšæ§ã®ããã®ã¡ã«ããºã ãæäŸããŸãã ãã®ã¡ã«ããºã ã¯ãã€ãã³ãéçŽãµãŒãã¹ãš
ãããªãã·ã£ãŒ-ãµãã¹ã¯ã©ã€ããŒãã³ãã¬ãŒãã«åºã¥ããŠããã
ãããªãã·ã£ãŒãšãµãã¹ã¯ã©ã€ããŒãçžäºã«æç€ºçãªãªã³ã¯ãªãã§å¯Ÿè©±ã§ããããã«ããŸãã
EventAggregator
ã¯ããã«ããã£ã¹ããããªãã·ã³ã°/ãµãã¹ã¯ãªãã·ã§ã³æ©èœãæäŸããŸãã ããã¯ãã€ãã³ããçºè¡ããŠãããããªãã·ã£ãŒãšããã®ã€ãã³ãã«ãµãã¹ã¯ã©ã€ãããŠãããµãã¹ã¯ã©ã€ããŒãè€æ°ããå¯èœæ§ãããããšãæå³ããŸãã
EventAggregator
ã䜿çšããŠãè€æ°ã®ã¢ãžã¥ãŒã«éã§ã€ãã³ããçºè¡ããããã³ã³ãããŒã©ãŒããã¬ãŒã³ã¿ãŒãªã©ã®ããžãã¹ããžãã¯ã³ãŒãéã§ã¡ãã»ãŒãžãéä¿¡ãããããããšãæ€èšããŠãã ããã
ãã®äŸã¯
Stock Trader RIã§ãããã®å Žåã[泚æãåŠç]ãã¿ã³ãã¯ãªãã¯ãããšæ³šæåŠçãéå§ãããŸãã ãã®å Žåãããã€ãã®ã¢ãžã¥ãŒã«ã¯ãéä¿¡ãæŽæ°ããããã«æ³šæãåŠçãããããšãèªèããå¿
èŠããããŸãã
Prismã䜿çšããŠäœæãããã€ãã³ãã¯åŒ·ãåä»ããããŠããŸãã ããã¯ãã³ã³ãã€ã«æã«åãã§ãã¯ãå©çšã§ããããšãæå³ããŸãã
EventBase
ã¯ã©ã¹ã䜿çšãããšããµãã¹ã¯ã©ã€ããŒãŸãã¯ãããªãã·ã£ãŒãç¹å®ã®
EventBase
ãæ€åºããŠãã€ãã³ãã®ã¿ã€ããå€å¥ã§ããŸãã æ¬¡ã®å³ã«ç€ºãããã«ãè€æ°ã®ãµãã¹ã¯ã©ã€ããŒããã³ãããªãã·ã£ãŒãäžåºŠã«äœ¿çšã§ããŸãã

.NET Frameworkã®ã€ãã³ãããŒãã
.NET Frameworkã«çµã¿èŸŒãŸããã€ãã³ãã¡ã«ããºã ã䜿çšããããšã¯ãççµåãå¿
èŠãªãå Žåã«ã³ã³ããŒãã³ããçžäºã«å¯Ÿè©±ããããã®æãåçŽã§æãæçœãªæ¹æ³ã§ãã .NET Frameworkã®ã€ãã³ãã¯Publish-Subscribeãã¿ãŒã³ãå®è£
ããŸããããªããžã§ã¯ãã®ã€ãã³ãããµãã¹ã¯ã©ã€ãããã«ã¯ããã®ãªããžã§ã¯ããžã®çŽæ¥åç
§ãå¿
èŠã§ããããã¯ãè€åã¢ããªã±ãŒã·ã§ã³ã§ã¯å¥ã®ã¢ãžã¥ãŒã«ã«ããããšããããããŸãã ãã®çµæã匷ãçµã³ä»ããããèšèšãã§ããŸãã ãããã£ãŠã.NET Frameworkã€ãã³ãã¯ãã¢ãžã¥ãŒã«éã§ã¯ãªãã¢ãžã¥ãŒã«éã§ã®ã¡ãã»ãŒãžã³ã°ã«äœ¿çšããå¿
èŠããããŸãã
.NET Frameworkã€ãã³ãã䜿çšããå Žåãç¹ã«éçãŸãã¯é·åœã®ãªããžã§ã¯ãã®ã€ãã³ãããµãã¹ã¯ã©ã€ãããééçãŸãã¯çåœã®ã³ã³ããŒãã³ããããå Žåã¯ãã¡ã¢ãªãªãŒã¯ãé²ãããã«éåžžã«æ³šæããå¿
èŠããããŸãã ãµãã¹ã¯ã©ã€ããŒããµãã¹ã¯ãªãã·ã§ã³ã®ãµãã¹ã¯ãªãã·ã§ã³ãè§£é€ããªãå Žåããããªãã·ã£ãŒã¯ãã®ãªã³ã¯ãä¿æããŸããããã«ãããæåã®ãµãã¹ã¯ã©ã€ããŒãã¬ããŒãžãåéã§ããªããªããŸãã
IEventAggregatorã€ã³ã¿ãŒãã§ã€ã¹
IEventAggregator
ãµãŒãã¹ã¯ã
IEventAggregator
ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠã³ã³ãããã
EventAggregator
ããŸãã ã€ãã³ãã¢ã°ãªã²ãŒã¿ãŒã¯ãã€ãã³ããªããžã§ã¯ãã®æ€åºãäœæãããã³ä¿åãè¡ããŸãã
public interface IEventAggregator { TEventType GetEvent<TEventType>() where TEventType : EventBase; }
EventAggregator
ã¯ããŸã äœæãããŠããªãå Žåãæåã®èŠæ±ã§ã€ãã³ããªããžã§ã¯ããäœæããŸãã ãããªãã·ã£ãŒãŸãã¯ãµãã¹ã¯ã©ã€ããŒã¯ãã€ãã³ããå©çšå¯èœãã©ããã倿ããå¿
èŠããªããªããŸãã
ã¯ã©ã¹CompositePresentationEvent
ãããªãã·ã£ãŒããµãã¹ã¯ã©ã€ããŒã«æ¥ç¶ããå®éã®äœæ¥ã¯ã
CompositePresentationEvent
ã¯ã©ã¹ã«ãã£ãŠè¡ãããŸãã Prismã©ã€ãã©ãªã«å«ãŸãã
EventBase
ã¯ã©ã¹ã®å¯äžã®å®è£
ã§ãã ãµãã¹ã¯ã©ã€ããŒã®ãªã¹ããç¶æãããããã®ãµãã¹ã¯ã©ã€ããŒã«éä¿¡ããã€ãã³ããåŠçããŸãã
CompositePresentationEvent
ã¯ã©ã¹ã¯æ±çšã§ããããã€ããŒãã®ã¿ã€ãã®å®çŸ©ãå¿
èŠã§ãã ããã«ããããããªãã·ã£ãŒããã³ãµãã¹ã¯ã©ã€ããŒã¯ãã€ãã³ãããã¯ãæåãããããã®æ£ãã眲åãã¡ãœããã«æäŸã§ããŸãã æ¬¡ã®ã³ãŒãã¯ã
CompositePresentationEvent
ã¯ã©ã¹ã®éšåçãªå®çŸ©ã瀺ããŠããŸãã
public class CompositePresentationEvent<TPayload> : EventBase { ... public SubscriptionToken Subscribe(Action<TPayload> action); public SubscriptionToken Subscribe(Action<TPayload> action, ThreadOption threadOption); public SubscriptionToken Subscribe(Action<TPayload> action, bool keepSubscriberReferenceAlive) public virtual SubscriptionToken Subscribe(Action<TPayload> action, ThreadOption threadOption, bool keepSubscriberReferenceAlive); public virtual SubscriptionToken Subscribe(Action<TPayload> action, ThreadOption threadOption, bool keepSubscriberReferenceAlive, Predicate<TPayload> filter); public virtual void Publish(TPayload payload); public virtual void Unsubscribe(Action<TPayload> subscriber); public virtual bool Contains(Action<TPayload> subscriber) ... }
ã€ãã³ãã®äœæãšå
Ž
以äžã®ã»ã¯ã·ã§ã³ã§ã¯ã
IEventAggregator
ã€ã³ã¿ãŒãã§ã€ã¹ã䜿çšããŠ
CompositePresentationEvent
ã€ãã³ããäœæãçºè¡ãããã³ãµãã¹ã¯ã©ã€ãããæ¹æ³ã«ã€ããŠèª¬æããŸãã
ã€ãã³ãäœæ
CompositePresentationEvent , , . TPayLoad . , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
ã¯ã©ã¹ã¯
CompositePresentationEvent , , . TPayLoad . , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http:
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .
CompositePresentationEvent , , . TPayLoad
. , .
, TickerSymbolSelectedEvent
Stock Trader RI . , . , .
public class TickerSymbolSelectedEvent : CompositePresentationEvent<string> { }
.
, , . Stock Trader RI , StockTraderRI.Infrastructure .
EventAggregator
Publish
. EventAggregator
, , IEventAggregator
.
, TickerSymbolSelectedEvent
.
this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Publish("STOCK0");
, Subscribe
CompositePresentationEvent
. CompositePresentationEvents
. .
, UI. , . , . , .
.
UI
, UI . WPF Silverlight, UI UI.
, . UI, UI. , UI. , UI, Dispatcher
.
CompositePresentationEvent
, UI. , .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews, ThreadOption.UIThread); } public void ShowNews(string companySymbol) { this.articlePresentationModel.SetTickerSymbol(companySymbol); }
ThreadOption
:
PublisherThread
. . . BackgroundThread
. .NET Framework. UIThread
. UI.
. , filter
. System.Predicate , , , .
, -, .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId);
.
- Silverlight, , ( CompositePresentationEvent
). - , Silverlight. , public , keepSubscriberReferenceAlive
true
, ( ).
- Silverlight, public
, , , ( ).
public bool FundOrderFilter(FundOrder fundOrder){ return fundOrder.CustomerId == this.customerId; } ... FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, FundOrderFilter);
.
Subscribe
Microsoft.Practices.Prism.Events.SubscriptionToken
, . , -, , .
.
, . .
( Strong references )
, , , , , . .
, CompositePresentationEvent
. , , CompositePresentationEvent
, . .
, keepSubscriberReferenceAlive
Subscribe
, .
FundAddedEvent fundAddedEvent = eventAggregator.GetEvent<FundAddedEvent>(); bool keepSubscriberReferenceAlive = true; fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, keepSubscriberReferenceAlive, fundOrder => fundOrder.CustomerId == _customerId);
keepSubscriberReferenceAlive
bool
:
true
, , . , . false
( , ), , . , .
, , , . , TickerSymbolSelectedEvent
, string
, .
public void Run() { ... this.eventAggregator .GetEvent<TickerSymbolSelectedEvent>() .Subscribe(ShowNews); } public void ShowNews(string companySymbol) { articlePresentationModel.SetTickerSymbol(companySymbol); }
, , , .
, , .
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); fundAddedEvent.Subscribe(FundAddedEventHandler, ThreadOption.PublisherThread); fundAddedEvent.Unsubscribe(FundAddedEventHandler);
, , . Subscribe
.
FundAddedEvent fundAddedEvent = this.eventAggregator.GetEvent<FundAddedEvent>(); subscriptionToken = fundAddedEvent.Subscribe( FundAddedEventHandler, ThreadOption.UIThread, false, fundOrder => fundOrder.CustomerId == this.customerId); fundAddedEvent.Unsubscribe(subscriptionToken);
, "Weak References" MSDN: http://msdn.microsoft.com/en-us/library/ms404247.aspx .