Prism 4.0 Drop 3
Silverlight4に対応したというPrism2.2をちょっとみていたのですが、よくよく見ると次のバージョンのベータ版のようなものがPrism 4.0 Drop 3としてリリースされていました(Dropって感覚的にアルファとかベータみたいなものだと思うんですけど、バージョンを表すものとしては初めて聞いた気がします)。
http://compositewpf.codeplex.com/releases/view/48172
いまのところ、Unityの代わりにMEFを使えるようになったのが大きな新機能のようです。
QuickStartsには、Prism使わない版のMVVMのサンプルとモジュール(XAP)をオンデマンドでロードするサンプル(MEFとUnity版それぞれ)が含まれています。
MVVMのサンプルは当然ICommand使っているんだろうなと思っていたら使っていなかったです。Blendに入っているアセンブリのSystem.Windows.Interactivityを使ってこう書いていました。
<Button Grid.Row="2" Grid.Column="2" Content="Reset" Height="23" HorizontalAlignment="Right" x:Name="button1" Width="75"> <i:Interaction.Triggers> <i:EventTrigger EventName="Click"> <ei:CallMethodAction TargetObject="{Binding}" MethodName="Reset"/> </i:EventTrigger> </i:Interaction.Triggers> </Button>
標準のICommandを使わないというのはこっちのほうが簡単っていう判断なんでしょうかね。
モジュールをオンデマンドでロードする機能はPrism2.2にすでに入っていましたが、依存関係を解決したりロードするオプションがいくつかあったりなかなか便利そうです。