рд╕рд╛рдордЧреНрд░реА рдХреА рддрд╛рд▓рд┐рдХрд╛
- рдкрд░рд┐рдЪрдп
- рдкреНрд░рд╛рд░рдореНрднрд┐рдХ рдкреНрд░рд┐рдЬреНрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧ
- рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдирд┐рд░реНрднрд░рддрд╛ рдХрд╛ рдкреНрд░рдмрдВрдзрди
- рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╡рд┐рдХрд╛рд╕
- рдПрдорд╡реАрд╡реАрдПрдо рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛
- рдЙрдиреНрдирдд MVVM рдкрд░рд┐рджреГрд╢реНрдп
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рд░реНрдорд╛рдг
- рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢
- рдиреЗрд╡рд┐рдЧреЗрд╢рди
- рджреГрд╢реНрдп-рдЖрдзрд╛рд░рд┐рдд рдиреЗрд╡рд┐рдЧреЗрд╢рди
- рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдкрд╛рд░рд╕реНрдкрд░рд┐рдХ рдХреНрд░рд┐рдпрд╛
рдПрдХ рдмрдбрд╝реЗ рдФрд░ рдЬрдЯрд┐рд▓ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рд╕рд╛рдорд╛рдиреНрдп рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдЕрд▓рдЧ рдХрд░рдирд╛ рд╣реИред рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХ рдХреА рд╕рдВрдЦреНрдпрд╛ рдХреЛ рдХрдо рдХрд░рдирд╛ рднреА рдЙрдЪрд┐рдд рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рдореЙрдбреНрдпреВрд▓ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд, рдкрд░реАрдХреНрд╖рдг, рддреИрдирд╛рдд рдФрд░ рдЕрджреНрдпрддрди рдХрд┐рдП рдЬрд╛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдм рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреА рдУрд░ рдЬрд╛рддрд╛ рд╣реИред
рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рдПрдХ рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рдЕрдВрддрд░ рдХреЛ рдЬрд╛рдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ рдХрд┐ рдХреМрди рд╕реЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдп рдореЗрдВ рдЖрд╡реЗрджрди рдХрд░рдирд╛ рд╣реИред рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рдкреНрд░рджрд╛рди рдХрд░рддреА рд╣реИ:
- рдХрдорд╛рдВрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ ( рд╕реЙрд▓реНрдпреВрд╢рди рдХрдорд╛рдВрдбрд┐рдВрдЧ )ред рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдВрджрд░реНрдн ( рдХреНрд╖реЗрддреНрд░ рд╕рдВрджрд░реНрдн )ред рдореЗрдЬрдмрд╛рди рдирд┐рдпрдВрддреНрд░рдг рд╕реЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЛ рд╕рдВрджрд░реНрдн рд╕рдВрдмрдВрдзреА рдЬрд╛рдирдХрд╛рд░реА рджреЗрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрд╣ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреБрдЫ рд╣рдж рддрдХ
DataContext
рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред - рд╕рд╛рдЭрд╛ рд╕реЗрд╡рд╛рдПрдБ рдЖрдк рд╕реЗрд╡рд╛ рдкрд░ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рдмрджрд▓реЗ рдореЗрдВ, рдПрдХ рдШрдЯрдирд╛ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬреЛ рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╕рджрд╕реНрдпрддрд╛ рд▓реЗ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдиреНрдп рд╕рднреА рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд╛рдЧреВ рдирд╣реАрдВ рд╣реИрдВ, рддреЛ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
- рдЗрд╡реЗрдВрдЯ рдПрдЧреНрд░реАрдЧреЗрд╢рди рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рд╕реАрдзреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрднрд╛рд╡ рдореЗрдВ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЙрдбрд▓, рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛, рдпрд╛ рдирд┐рдпрдВрддреНрд░рдХреЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЖрджреЗрд╢реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ ( рд╕рдорд╛рдзрд╛рди рдХрдорд╛рдВрдбрд┐рдВрдЧ )
рдпрджрд┐ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЗрд╢рд╛рд░реЛрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛, рдФрд░ рдпрджрд┐ рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдЬрд┐рдХ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдХрдорд╛рдВрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
WPF рд░реВрдЯреЗрдб рдХрдорд╛рдВрдбреНрд╕ (
RoutedCommand
) рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдХрд┐ рдПрдХ рдХрдВрдЯреНрд░реЛрд▓ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдХреВрд▓ рд╣реЛрддреЗ рд╣реИрдВ рдЬреЛ рдХрдорд╛рдВрдб, рдЬреИрд╕реЗ рдмрдЯрди рдпрд╛ рдПрдХ рдореЗрдиреВ рдЖрдЗрдЯрдо, рд╡рд░реНрддрдорд╛рди рдЖрдЗрдЯрдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрдорд╛рдВрдб рд╣реИрдВрдбрд▓рд░ рдХреЗ рд╕рд╛рде рдХреАрдмреЛрд░реНрдб рдлреЛрдХрд╕ рд╣реЛрддрд╛ рд╣реИред
рд╣рд╛рд▓рд╛рдБрдХрд┐, рд╕рдордЧреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдШрдЯрдирд╛ рд╣реИрдВрдбрд▓рд░ рдЕрдХреНрд╕рд░ рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рдореЙрдбрд▓ рд╣реЛрддрд╛ рд╣реИ, рдпрд╛ рддреЛ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдореЗрдВ рдХрд┐рд╕реА рднреА рд╕рдВрдмрджреНрдз рддрддреНрд╡реЛрдВ рдХреЗ рдмрд┐рдирд╛, рдпрд╛ рдЬрд┐рд╕рдореЗрдВ рдлреЛрдХрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдЬрд╝реНрдо
DelegateCommand
рдХреНрд▓рд╛рд╕ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдкреНрд░рддрд┐рдирд┐рдзрд┐ рдХреЛ рдХрдорд╛рдВрдб рдХреЗ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдкрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░
CompositeCommand
рдХреНрд▓рд╛рд╕, рдЬреЛ рдХрдИ рдХрдорд╛рдВрдбреЛрдВ рдХреЛ рдПрдХ рдореЗрдВ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдпреЗ рдХрдХреНрд╖рд╛рдПрдВ рдмрд┐рд▓реНрдЯ-рдЗрди
RoutedCommand
рдХреНрд▓рд╛рд╕ рд╕реЗ рдЕрд▓рдЧ рд╣реИрдВ, рдЬреЛ рд╡рд┐рдЬреБрдЕрд▓ рдЯреНрд░реА рдХреЗ рдКрдкрд░ рдФрд░ рдиреАрдЪреЗ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡реЗ рдЖрдкрдХреЛ рджреГрд╢реНрдп рдкреЗрдбрд╝ рдореЗрдВ рдПрдХ рдХрдорд╛рдВрдб рд╢реБрд░реВ рдХрд░рдиреЗ, рдФрд░ рдЗрд╕реЗ рдЙрдЪреНрдЪ рд╕реНрддрд░ рдкрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВред
CompositeCommand
рдХреНрд▓рд╛рд╕
ICommand
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
CompositeCommands
рд╡рд░реНрдЧ рдХрдИ рдЪрд╛рдЗрд▓реНрдб рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
CompositeCommand
рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп, рдмрд╛рд▓ рдЖрджреЗрд╢реЛрдВ рдХреЛ рднреА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
CompositeCommand
рд╡рд░реНрдЧ рд╕рдХреНрд░рд┐рдпрдг рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред рдЬрдм
CanExecuteChanged
рдЗрд╡реЗрдВрдЯ
CanExecuteChanged
, рддреЛ рдпрд╣ рд╕реНрд╡рдпрдВ рдЗрд╕ рдИрд╡реЗрдВрдЯ рдХреЛ рдЬрдирд░реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдЙрд╕рдХреЗ рдмрд╛рдж, рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдпрдВрддреНрд░рдг
CanExecute
рдкрд░
CanExecute
рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
CanExecute
рдЕрдкрдиреЗ
CanExecute
рдкрджреНрдзрддрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдХреЗ рд╕рднреА рдмрд╛рд▓ рдЖрджреЗрд╢реЛрдВ рдХрд╛ рд╕рд░реНрд╡реЗрдХреНрд╖рдг рдХрд░рддреЗ
CanExecute
ред рдпрджрд┐ рдХреЛрдИ рдХрдорд╛рдВрдб
false
рдЖрддреА
false
, рддреЛ
CompositeCommand
рднреА
false
рд▓реМрдЯрддрд╛
false
, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджреЗрддрд╛ рд╣реИред
рдкреНрд░рд┐рдЬреНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА-рдЖрдзрд╛рд░рд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╢реЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╡реИрд╢реНрд╡рд┐рдХ
CompositeCommand
рдХрдорд╛рдВрдб рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдкреВрд░реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд╕рдордЭ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐
рд╕реЗрд╡ ,
рд╕реЗрд╡ рдСрд▓ рдФрд░
рдХреИрдВрд╕рд┐рд▓ ред рдореЙрдбреНрдпреВрд▓ рдЗрди рд╡реИрд╢реНрд╡рд┐рдХ рдЯреАрдореЛрдВ рдореЗрдВ рдЕрдкрдиреА рд╕реНрдерд╛рдиреАрдп рдЯреАрдореЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдЙрдирдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред
WPF рд░реВрдЯ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ ( рд░реВрдЯ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ ) рдФрд░ рд░реВрдЯ рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдб ( рд░реВрдЯ рдХрд┐рдП рдЧрдП рдХрдорд╛рдВрдб ) рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рд░реВрдЯ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рд╕рд╛рдорд╛рдиреНрдп рдШрдЯрдирд╛рдУрдВ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рддрддреНрд╡ рдЯреНрд░реА рдХреЗ рд╡рд┐рднрд┐рдиреНрди рд╕реНрдерд╛рдиреЛрдВ рдореЗрдВ рд╕реНрдерд┐рдд рдХрдИ рд╣реИрдВрдбрд▓рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред WPF рд░реВрдб рдЗрд╡реЗрдВрдЯреНрд╕ рджреГрд╢реНрдп рдЯреНрд░реА рдореЗрдВ рдЖрдЗрдЯрдо рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рд╡реЗ рддрддреНрд╡ рдЬреЛ рджреГрд╢реНрдп рдЯреНрд░реА рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ рд╡реЗ рдЗрди рдЖрджреЗрд╢реЛрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд░реВрдЯ рдХрд┐рдП рдЧрдП рдИрд╡реЗрдВрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреНрд░реА рдХреЗ рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдЪрд╛рд░ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдорд╛рд░реНрдЧ рдореЗрдВ рдкреНрд░рддреНрдпреЗрдХ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЗрд╡реЗрдВрдЯ рдбреЗрдЯрд╛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рддрддреНрд╡ рдЗрд╕ рдбреЗрдЯрд╛ рдореЗрдВ рдХреБрдЫ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдкрд░рд┐рд╡рд░реНрддрди рдорд╛рд░реНрдЧ рдореЗрдВ рдЕрдЧрд▓реЗ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧрд╛ред
рдЖрдк рдирд┐рдореНрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ 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; } } }
рдиреЛрдЯред
рд╢рд╛рдпрдж рд╣реА рдХрднреА рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдЖрджреЗрд╢реЛрдВ рдХреЗ рд▓рд┐рдП, рдпрд╣ рдЕрдХреНрд╕рд░ "рдЖрд▓рд╕реА" рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ, рд╕реАрдзреЗ рд╕рдВрдкрддреНрддрд┐ рдХреА рд╡рд┐рдзрд┐ рдореЗрдВ рдПрдХ DelegateCommand
рдмрдирд╛рдПрдВред
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>
рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ
x:static
рд▓рд┐рдП рд╕рдорд░реНрдерди рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ
x:static
, рдЗрд╕рд▓рд┐рдП рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рдПрдХ рдмрдЯрди рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП:
- рджреГрд╢реНрдп рдореЙрдбрд▓ рдореЗрдВ, рдЖрдкрдХреЛ рд╕реНрдерд┐рд░ рд╡рд░реНрдЧ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрдорд╛рдВрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
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
рд╕рдВрдкрддреНрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдорд╛рдВрдб рдХреЛ рдмрдЯрди рдХреЛ Click.Command
ред
<Button Name="MyCommandButton" prism:Click.Command="{Binding MyCompositeCommand}" Content="Execute MyCommand"/> </Button>
рдиреЛрдЯред
рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╣реИ Application.Resources
рдореЗрдВ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрдорд╛рдВрдб рдХреЛ рд╕рд╣реЗрдЬрдирд╛ред ApplicationResl рдлрд╝рд╛рдЗрд▓ред рд╕реНрд░реЛрдд рд╕реНрд░реЛрддред рдЙрд╕рдХреЗ рдмрд╛рдж, рджреГрд╢реНрдп рдореЗрдВ, рдЗрд╕реЗ рдмрд╛рдВрдзреЗрдВред
<Button Name="MyCommandButton" prism:Click.Command="{Binding MyCompositeCommand, Source={StaticResource GlobalCommands}} Content="Execute MyCommand"/> </Button>
рдХреНрд╖реЗрддреНрд░ рдХрд╛ рд╕рдВрджрд░реНрдн
рдХрдИ рдкрд░рд┐рджреГрд╢реНрдп рд╣реИрдВ рдЬрдм рдХрд┐рд╕реА рдХреНрд╖реЗрддреНрд░ (рдореЗрдЬрдмрд╛рди) рд╕реЗ рдЬреБрдбрд╝реЗ рджреГрд╢реНрдп рдФрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реНрдерд┐рдд рджреГрд╢реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП,
рдорд╛рд╕реНрдЯрд░-рдбрд┐рдЯреЗрд▓ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ, рджреГрд╢реНрдп рдЗрдХрд╛рдИ рдФрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЗрд╕ рдЗрдХрд╛рдИ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреА рд╣реИред рдкреНрд░рд┐рдЬреНрдо рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдореЗрдЬрдмрд╛рди рдХреЗ рдмреАрдЪ рдПрдХ рд╡рд╕реНрддреБ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд░реАрдЬрди
RegionContext
рдирд╛рдордХ рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд▓реЛрдб рдХрд┐рдП рдЧрдП рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЪрд┐рддреНрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

рдкрд░рд┐рджреГрд╢реНрдп рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЖрдк рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рдПрдХ рдЯреБрдХрдбрд╝реЗ (рдЬреИрд╕реЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛) рдФрд░ рд╕рдВрдкреВрд░реНрдг рдореЙрдбрд▓ рдХреЛ рдзреЛрдЦрд╛ рджреЗ рд╕рдХрддреЗ рд╣реИрдВред рдЗрд╕ рджреГрд╢реНрдп рд╕реЗ рдПрдХ
RegionContext
рдкреНрд░рд╛рдкреНрдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдлрд┐рд░ рдПрдХ рдкрд░рд┐рд╡рд░реНрддрди рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдПрдХ рджреГрд╢реНрдп
RegionContext
рдХрд╛ рдорд╛рди рднреА рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред
RegionContext
рд╕рд╛рде рдЖрдиреЗ рдФрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:
- XAML рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ
RegionContext
рдХреНрд╖реЗрддреНрд░ рдХрд╛ RegionContext
рдХреНрд╖реЗрддреНрд░-рд╕рдореВрд╣ рд╕реЗрдЯ рдХрд░рдирд╛ред - рдХреЛрдб рдореЗрдВ рдХреНрд╖реЗрддреНрд░
RegionContext
рдХреНрд╖реЗрддреНрд░-рдирд┐рд░реНрдзрд╛рд░рдг рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ред - рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрдВрджрд░ рдПрдХ рджреГрд╢реНрдп рд╕реЗ рдПрдХ
RegionContext
рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ред
рдиреЛрдЯред
рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдкреНрд░рд┐рдЬреНрдо рдПрдХ рдХреНрд╖реЗрддреНрд░ рдХреЗ рднреАрддрд░ рдПрдХ рджреГрд╢реНрдп рд╕реЗ рдПрдХ RegionContext
рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рд╡рд╣ рджреГрд╢реНрдп рдПрдХ DependencyObject
рд╡рдВрд╢рдЬ рд╣реИред рдпрджрд┐ рдЖрдкрдХрд╛ рджреГрд╢реНрдп рдПрдХ DependencyObject
рдирд╣реАрдВ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдбреЗрдЯрд╛ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдПрдХ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╕реАрдзреЗ рдПрдХ рджреГрд╢реНрдп рдореЙрдбрд▓ рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ), рддреЛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП RegionBehavior
рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рд╕реНрд╡рдпрдВ рдХрд╛ RegionBehavior
рдХреНрд▓рд╛рд╕ рдмрдирд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред
DataContext
рдкреНрд░реЙрдкрд░реНрдЯреА рдкрд░ рдзреНрдпрд╛рди рджреЗрдВред
рдПрдХ рдбреЗрдЯрд╛ рд╕рдВрджрд░реНрдн рдПрдХ рдЕрд╡рдзрд╛рд░рдгрд╛ рд╣реИ рдЬреЛ рдирд┐рдпрдВрддреНрд░рдг рдХреЛ рдЕрдкрдиреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рд╕реЗ рдмрдВрдзрди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдмрд╛рд▓ рддрддреНрд╡ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ DataContext
рдХреЛ рдЙрдирдХреЗ рдореВрд▓ рддрддреНрд╡реЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдбреЗрдЯрд╛ рджреГрд╢реНрдп рд╡реГрдХреНрд╖ рдХреЛ рдлреИрд▓рд╛рддрд╛ рд╣реИред
рдХрд┐рд╕реА рдореЙрдбрд▓ рдХреЛ рд╕рд┐рд▓реНрд╡рд░рд▓рд╛рдЗрдЯ рдореЗрдВ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдореЙрдбрд▓ рдХреЛ рдмрд╛рдЗрдВрдб рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ DataContext
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ DataContext
ред рдЗрд╕реАрд▓рд┐рдП, рдЬреНрдпрд╛рджрд╛рддрд░ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдореЗрдВ, рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рджреГрд╢реНрдп рдореЙрдбрд▓ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЗрд╕ рдХрд╛рд░рдг, рдпрд╣ рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рдмреАрдЪ рдПрдХ рд╕рдВрдЪрд╛рд░ рддрдВрддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ DataContext
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдиреБрд╢рдВрд╕рд┐рдд рдирд╣реАрдВ рд╣реИред
рд╕рд╛рдЭрд╛ рд╕реЗрд╡рд╛рдПрдБ
рдЗрдВрдЯрд░рдореЙрдбреНрдпреВрд▓рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрдиреНрдп рддрд░реАрдХрд╛ рд╕рд╛рдЭрд╛ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп, рдпрд╣ DI рдХрдВрдЯреЗрдирд░ рдореЗрдВ рдЕрдкрдиреА рд╕реЗрд╡рд╛рдПрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдЖрдорддреМрд░ рдкрд░, рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХрдВрдЯреЗрдирд░ рд╕реЗ рдЖрдо рдЗрдВрдЯрд░рдлреЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрдВрдЬреАрдХреГрдд рдФрд░ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдПрдХ рдЕрд▓рдЧ рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИрдВред рдпрд╣ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ рд╕реЗрд╡рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЗрди рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕реНрдерд┐рд░ рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдмрд┐рдирд╛ред рд╕реЗрд╡рд╛ рдЙрджрд╛рд╣рд░рдг рд╕рднреА рдореЙрдбреНрдпреВрд▓ рдХреЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдбреЗрдЯрд╛ рдХрд╛ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЙрдирдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВред
рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рдЖрд░рдЖрдИ рдореЗрдВ ,
рдорд╛рд░реНрдХреЗрдЯ рдореЙрдбреНрдпреВрд▓
IMarketFeedService
рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд╕реНрдерд┐рддрд┐ рдореЙрдбреНрдпреВрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд DI рдХрдВрдЯреЗрдирд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕ рд╕реЗрд╡рд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рддрд╛ рд╣реИред
IMarketFeedService
рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЕрднрд┐рдкреНрд░реЗрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣
StockTraderRI.Infrastructure рдХреА рд╕рд╛рдорд╛рдиреНрдп рд╕рднрд╛ рдореЗрдВ
рд╕реНрдерд┐рдд рд╣реИ , рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ
рдорд╛рд░реНрдХреЗрдЯ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рдореЙрдбреНрдпреВрд▓реЛрдВ рд╕реЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ
рдЬреЛрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдпреЗ рд╕реЗрд╡рд╛рдПрдБ MEF рдХрдВрдЯреЗрдирд░ рдХреЛ рдХреИрд╕реЗ рдирд┐рд░реНрдпрд╛рдд рдХреА рдЬрд╛рддреА рд╣реИрдВ,
MarketFeedService.cs рдФрд░
MarketHistoryService.cs рдлрд╝рд╛рдЗрд▓реЗрдВ рджреЗрдЦреЗрдВ ред
рд╕реНрдерд┐рддрд┐ рдореЙрдбреНрдпреВрд▓ рдХреЗ
IMarketFeedService
рдХреЛ рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░ рдореЗрдВ рдирд┐рд░реНрднрд░рддрд╛ рдЗрдВрдЬреЗрдХреНрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
IMarketFeedService
рд╕реЗрд╡рд╛ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддреА рд╣реИред
[Export(typeof(IMarketFeedService))] [PartCreationPolicy(CreationPolicy.Shared)] public class MarketFeedService : IMarketFeedService, IDisposable { ... }
рдиреЛрдЯред
рдХреБрдЫ DI рдХрдВрдЯреЗрдирд░ рдЖрдкрдХреЛ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдирд┐рд░реНрднрд░рддрд╛ рджрд░реНрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рджреВрд╕рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдкрдВрдЬреАрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред рдРрд╕реЗ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрдВрдЬреАрдХрд░рдг рдЖрдорддреМрд░ рдкрд░ IModule.Initialize
рдкрджреНрдзрддрд┐ рдореЗрдВ рдореЙрдбреНрдпреВрд▓ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рджреМрд░рд╛рди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рднрд╛рдЧ 4, " рд╡рд┐рдХрд╛рд╕рд╢реАрд▓ рдореЙрдбреНрдпреВрд▓рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧ " рджреЗрдЦреЗрдВред
рдЗрд╡реЗрдВрдЯ рдПрдЧреНрд░реАрдЧреЗрд╢рди
рдкреНрд░рд┐рдЬреНрдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдПрдХ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд╢рд┐рдерд┐рд▓ рдпреБрдЧреНрдорд┐рдд рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рддрдВрддреНрд░ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣ рддрдВрддреНрд░ рдШрдЯрдирд╛ рдПрдХрддреНрд░реАрдХрд░рдг рд╕реЗрд╡рд╛ рдФрд░
рдкреНрд░рдХрд╛рд╢рдХ-рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдмрд░ рдЯреЗрдореНрдкрд▓реЗрдЯ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рдЬреЛ рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдФрд░ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд▓рд┐рдВрдХ рдХреЗ рдмрд┐рдирд╛ рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
EventAggregator
рдорд▓реНрдЯреАрдХрд╛рд╕реНрдЯ рдкреНрд░рдХрд╛рд╢рди / рд╕рджрд╕реНрдпрддрд╛ рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдХрдИ рдкреНрд░рдХрд╛рд╢рдХ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ рдХрдИ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдиреЗ рдЗрд╕ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реА рд╣реИред рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреЗ рдмреАрдЪ рдШрдЯрдирд╛рдУрдВ рдХреЛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ
EventAggregator
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВ рдФрд░ рдирд┐рдпрдВрддреНрд░рдХ рдФрд░ рдкреНрд░рд╕реНрддреБрддрдХрд░реНрддрд╛ рдЬреИрд╕реЗ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рддрд░реНрдХ рдХреЛрдб рдХреЗ рдмреАрдЪ рд╕рдВрджреЗрд╢ рднреЗрдЬрддреЗ рд╕рдордпред
рдЗрд╕рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг
рд╕реНрдЯреЙрдХ рдЯреНрд░реЗрдбрд░ рдЖрд░рдЖрдИ рд╣реИ , рдЬрд┐рд╕рдореЗрдВ рдЬрдм рдЖрдк
рдкреНрд░реЛрд╕реЗрд╕ рдСрд░реНрдбрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдСрд░реНрдбрд░ рдкреНрд░реЛрд╕реЗрд╕рд┐рдВрдЧ рд╢реБрд░реВ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХрдИ рдореЙрдбреНрдпреВрд▓ рдХреЛ рдкрддрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдирдХреЗ рд╕рдмрдорд┐рд╢рди рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдСрд░реНрдбрд░ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдкреНрд░рд┐рдЬреНрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдмрдирд╛рдИ рдЧрдИ рдШрдЯрдирд╛рдПрдВ рджреГрдврд╝рддрд╛ рд╕реЗ рдЯрд╛рдЗрдк рдХреА рдЬрд╛рддреА рд╣реИрдВред рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рдЖрдк рд╕рдВрдХрд▓рди рдХреЗ рд╕рдордп рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рдХрд╛ рд▓рд╛рдн рдЙрдард╛ рд╕рдХрддреЗ рд╣реИрдВред
EventAggregator
рд╡рд░реНрдЧ рдЧреНрд░рд╛рд╣рдХреЛрдВ, рдпрд╛ рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдХреЛ, рдИрд╡реЗрдВрдЯ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд┐рд╢реЗрд╖
EventBase
рдЦреЛрдЬ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХрдИ рдЧреНрд░рд╛рд╣рдХ рдФрд░ рдкреНрд░рдХрд╛рд╢рдХ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдиреАрдЪреЗ рдЪрд┐рддреНрд░рдг рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред

.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдиреЛрдЯред
.NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдирд┐рд░реНрдорд┐рдд рдШрдЯрдирд╛ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рд╕рд░рд▓ рдФрд░ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рд╣реИ рдпрджрд┐ рдвреАрд▓реА рдпреБрдЧреНрдорди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдореЗрдВ рдЗрд╡реЗрдВрдЯ рдкрдмреНрд▓рд┐рд╢-рд╕рдмреНрд╕рдХреНрд░рд╛рдЗрдм рдкреИрдЯрд░реНрди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдШрдЯрдирд╛ рдХреА рд╕рджрд╕реНрдпрддрд╛ рдХреЗ рд▓рд┐рдП, рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реАрдзрд╛ рд╕рдВрджрд░реНрдн рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЬреЛ рдХрд┐ рд╕рдордЧреНрд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ, рдЕрдХреНрд╕рд░ рджреВрд╕рд░реЗ рдореЙрдбреНрдпреВрд▓ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реЛрддрд╛ рд╣реИред рдкрд░рд┐рдгрд╛рдо рдПрдХ рджреГрдврд╝рддрд╛ рд╕реЗ рдЬреБрдбрд╝рд╛ рд╣реБрдЖ рдбрд┐рдЬрд╛рдЗрди рд╣реИред рдЗрд╕рд▓рд┐рдП, .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдореЙрдбреНрдпреВрд▓ рдХреЗ рднреАрддрд░ рд╕рдВрджреЗрд╢ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЙрдирдХреЗ рдмреАрдЪ рдирд╣реАрдВред
рдпрджрд┐ рдЖрдк .NET рдлреНрд░реЗрдорд╡рд░реНрдХ рдШрдЯрдирд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдореЗрдореЛрд░реА рд▓реАрдХ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕рд╛рд╡рдзрд╛рдиреА рдмрд░рддрдиреА рдЪрд╛рд╣рд┐рдП, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЧреИрд░-рд╕реНрдерд┐рд░ рдпрд╛ рдЕрд▓реНрдкрдХрд╛рд▓рд┐рдХ рдШрдЯрдХ рд╣реИрдВ рдЬреЛ рд╕реНрдерд┐рд░ рдпрд╛ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рд░рд╣рдиреЗ рд╡рд╛рд▓реА рд╡рд╕реНрддреБ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреА рд╕рджрд╕реНрдпрддрд╛ рд▓реЗрддреЗ рд╣реИрдВред рдпрджрд┐ рдЧреНрд░рд╛рд╣рдХ рд╕рджрд╕реНрдпрддрд╛ рд╕реЗ рд╕рджрд╕реНрдпрддрд╛ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдкреНрд░рдХрд╛рд╢рдХ рджреНрд╡рд╛рд░рд╛ рд░рдЦрд╛ рдЬрд╛рдПрдЧрд╛, рдЬреЛ рдкрд╣рд▓реЗ рдПрдХ рдХреЛ рдХрдЪрд░рд╛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рд╕реЗ рд░реЛрдХреЗрдЧрд╛ред
IEventAggregator рдЗрдВрдЯрд░рдлрд╝реЗрд╕
EventAggregator
рд╕реЗрд╡рд╛ рдХрдВрдЯреЗрдирд░ рд╕реЗ
IEventAggregator
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ
EventAggregator
рдХреА
IEventAggregator
рд╣реИред рдИрд╡реЗрдВрдЯ рдПрдЧреНрд░реАрдЧреЗрдЯрд░ рдИрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдпрд╛ рдмрдирд╛рдиреЗ рдФрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИред
public interface IEventAggregator { TEventType GetEvent<TEventType>() where TEventType : EventBase; }
EventAggregator
рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдкрд░ рдПрдХ рдЗрд╡реЗрдВрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдирд╣реАрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдкреНрд░рдХрд╛рд╢рдХ, рдпрд╛ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рд╕реЗ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рдШрдЯрдирд╛ рдЙрдкрд▓рдмреНрдз рд╣реИ рдпрд╛ рдирд╣реАрдВред
рдХреНрд▓рд╛рд╕ рдХрдореНрдкреЛрдЬрд┐рдЯрдкреНрд░реЗрдВрдЯреЗрд╢рдирдИрд╡реЗрдВрдЯ
рдкреНрд░рдХрд╛рд╢рдХреЛрдВ рдХреЛ рдЧреНрд░рд╛рд╣рдХреЛрдВ рд╕реЗ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдЕрд╕рд▓реА рдХрд╛рдо рдХрдВрдкреЛрдЬрд┐рдЯрдкрд░реНрд╕реЗрдВрдЯреЗрд╢рди
CompositePresentationEvent
рд╡рд░реНрдЧ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдкреНрд░рд┐рдЬрд╝реНрдо рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╢рд╛рдорд┐рд▓
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://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 .