WPF mvvm向导

时间:2013-04-08 05:52:58

标签: wpf mvvm

我正在实现WPF MVVM向导,我想知道在加载新的向导页面(UserControl)时执行DoOperation的正确方法。

DoOperation类实现了MyWizard.ViewModal,而UserControl名称空间发生了MyWizard.View加载。

如何在UserControl加载的事件与DoOperation api之间建立连接?

我尝试了以下内容:

<xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"

<i:Interaction.Triggers>

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

RunOperation来电DoOperation

它不起作用,RunOperation没有被调用。

这是正确的方法还是有更好的方法在MyWizard.ViewModal班级执行操作?

1 个答案:

答案 0 :(得分:0)

你的方法应该有效。您是否检查过输出控制台是否存在绑定错误? RunOperation是命令吗?在引发Loaded事件时,是否已设置UserControl的DataContext?你有没有在你的UC中实现这样的触发器?

<UserControl x:Class="..."
              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"                  
             xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">

    <i:Interaction.Triggers>

        <i:EventTrigger EventName="Loaded">
            <i:InvokeCommandAction Command="{Binding Path=RunOperation}"/>
        </i:EventTrigger>

    </i:Interaction.Triggers>

    <Grid>
        ...
    </Grid>

</UserControl>