1

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

加载发生在命名空间时,在类上DoOperation实现。MyWizard.ViewModalUserControlMyWizard.View

如何将UserControl 加载的事件连接到DoOperationapi?

我尝试了以下方法:

<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课堂上执行操作?

4

1 回答 1

0

你的方法应该有效。您是否检查过输出控制台是否存在绑定错误?是RunOperation命令吗?引发事件时是否已经设置了 UserControl 的 DataContext Loaded?你有没有在你的 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>
于 2013-04-08T08:32:28.910 回答