2012-01-10 73 views
1

我使用棱镜来建立一个WPF应用程序,但有一些麻烦让以下工作。我在Shell.xaml文件中有一个Storyboard。故事板应该由区域中的用户控件中的按钮触发。我Shell.xaml看起来是这样的:在棱镜壳启动故事板基于按钮点击区域内

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

按钮连接到视图模型的命令。注入到该区域MyRegion用户控件看起来是这样的:

<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() 
    { 
    ?????? 
    } 
} 

我应该采取什么步骤来运行的故事板myStoryboardShell.xamlWizardCommand区域内MyRegion

回答

1

你真的有2个问题在这里:

  1. 如何,它需要做一些事情通知壳。

  2. 如何从视图模型

这里跑故事板是什么,我会做:

  1. 使用PRISM的EventAggregator,创建RunMyStoryboard事件。订阅此事件在ShellViewModel并在MyViewModel.StartWizard

  2. 检查发布此事件如何从视图模型运行故事板这样一个问题:MVVM- Trigger Storyboard in the View Model in Silverlight

+0

我得到它的工作。谢谢! – 2012-01-11 14:35:31