【问题标题】:WPFToolkit Wizard binding Commands for the Next/Previous buttons. (MVVM)WPFToolkit 向导绑定下一个/上一个按钮的命令。 (MVVM)
【发布时间】:2018-11-19 21:41:25
【问题描述】:

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

现在我很难将 RelayCommand(从 ICommand 继承)绑定到 Next/Previous/Finish 按钮。

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

命令已定义:

    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, 雷

【问题讨论】:

    标签: c# wpf mvvm wpftoolkit


    【解决方案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>
    

    【讨论】:

      猜你喜欢
      • 2014-05-13
      • 2015-06-07
      • 2010-12-21
      • 1970-01-01
      • 2019-05-20
      • 2018-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多