WPFToolkit向导的“下一个/上一个”按钮的绑定命令。 (MVVM)

时间:2018-11-19 21:41:25

标签: c# wpf mvvm wpftoolkit

我正在尝试在使用MVVM设计模型的应用程序中使用WPFToolkit.Wizard。

现在我在将RelayCommand(继承自ICommand)与“下一个/上一个/完成”按钮上遇到困难。

我看到向导引发事件,但这会破坏范例。

该命令已定义:

    public ICommand NextStage
    {
        get
        {
            return _NextStage ?? (
                _NextStage = new RelayCommand(param => PrepNextStep(),
                                              param => Page((PageIndexes)CurrentStage).IsDirty
                                             ));

        }   //  get
    }   //  public ICommand NextStage

XAML是:

    <xctk:Wizard    x:Name="wizMain"
                    Grid.Row="1"
                    FinishButtonClosesWindow="True" 
                    ItemsSource="{Binding wizardPages}" 
                    Background="White"
                    ExteriorPanelMinWidth="100"
                    HelpButtonVisibility="Hidden"
                    Next="{Binding Path=NextStage}"
                    >
    </xctk:Wizard>

运行时引发的错误是:

  

“在'System.Windows.Data.Binding'上提供值”引发了异常。行号“ 33”和行号“ 25”。

任何帮助将不胜感激。

TIA, 雷

1 个答案:

答案 0 :(得分:1)

Next是一个事件,不是可以绑定到ICommand源属性的依赖项属性。

您可以做的是添加对System.Windows.Interactivity.dll的引用,并在向导引发事件时使用交互触发器来调用命令:

<xctk:Wizard ... xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Next">
            <i:InvokeCommandAction Command="{Binding NextStage}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</xctk:Wizard>