SherryW

导航

学习总结:如何给事件绑定命令?

在MVVM架构下,要少用或者尽量不用事件,那有时候不得不用事件,那咋办呢?仍然可以通过绑定它的命令来实现,用例子来说明。

引用了xceed.wpf.toolkit这个工具可以实现导航(Wizard)的功能,做一个导航程序,依次有三个界面,我们想在第一个界面进入第二个界面时实现某种功能,熟悉导航功能的人肯定会说,那就用Enter事件啊!是,可以用Enter来实现,在窗体后台写代码,那为了符合MVVM的框架应该怎么做呢?具体做法如下:

添加引用:xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

下面显示的代码表示某一页导航

<xctk:WizardPage PageType="Interior" Title="设置设备参数"
                 Description="报警电话号码">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Enter">
                            <i:InvokeCommandAction  Command="{Binding Path=StartUpCommand}"/>
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                    <Grid>
                        <ListBox Margin="16,8,16,40" ItemsSource="{Binding EquipCollection}"
                                 ItemTemplate="{StaticResource setParaTemplate}"
                                 HorizontalContentAlignment="Center"/>
                    </Grid>

</xctk:WizardPage>  

在这段代码中实现事件Enter绑定Command的具体代码是:

<i:Interaction.Triggers>
                        <i:EventTrigger EventName="Enter">
                            <i:InvokeCommandAction  Command="{Binding Path=StartUpCommand}"/>
                        </i:EventTrigger>

 </i:Interaction.Triggers>

通过这种方式就可以实现事件的Command的命令了。

posted on 2013-09-04 20:12  SherryW  阅读(525)  评论(0编辑  收藏  举报