2012-01-10 2 views
1

私はPrismを使ってWPFアプリケーションを構築していますが、私のShell.xamlファイルの中にStoryboardがあります。ストーリーボードは、リージョン内のユーザーコントロール内のボタンによってトリガーされます。私Shell.xamlは、次のようになります。Prism Shellでストーリーボードを開始するには、内側のボタンをクリックしてください

<Window ...> 
    <Window.Resources> 
    <ResourceDictionary> 
     <Storyboard x:Key="myStoryboard">...</Storyboard> 
    </ResourceDictionary> 
    </Window.Resources> 
    <ContentControl x:Name="wizard" prism:RegionManager.RegionName="MyRegion" /> 
</Window> 

ボタンは、ビューモデルでコマンドに取り付けられています。

<UserControl ...> 
    <Button x:Name="myButton" Command="{Binding WizardCommand}"> 
    MyButton 
    </Button> 
</UserControl> 

そして最後に、前のユーザーコントロールに対応するビューモデル::私はストーリーボードを実行するために取るべき手順

[Export(typeof(MyViewModel))] 
public class MyViewModel 
{ 
    private readonly DelegateCommand _wizardCommand; 
    public ICommand WizardCommand { get { return _wizardCommand; } } 

    public MyViewModel() 
    { 
    _wizardCommand = new DelegateCommand(StartWizard); 
    } 

    private void StartWizard() 
    { 
    ?????? 
    } 
} 

地域MyRegionに注入されたユーザーコントロールは、次のようになりますmyStoryboard内側Shell.xamlWizardCommandからMyRegionまでです。

答えて

1

あなたは本当にここに2つの質問を持っている:

  1. それが何かをする必要があることをシェルに通知する方法。

  2. のViewModel

    からストーリーボードを実行する方法

ここでは、私がどうなるのかです:

  1. 使用PRISMのEventAggregatorRunMyStoryboardイベントを作成します。私はそれが働いてしまったMVVM- Trigger Storyboard in the View Model in Silverlight

+0

:あなたのShellViewModelでこのイベントをサブスクライブし、ビューモデルからストーリーボードを実行する方法についてごMyViewModel.StartWizard

  • チェックこの質問をして、このイベントを公開します。ありがとう! –

  • 関連する問題