WPFToolkit Wizard Команды привязки для кнопок Next / Previous.(MVVM) - PullRequest
0 голосов
/ 20 ноября 2018

Я пытаюсь использовать WPFToolkit.Wizard в приложении, использующем модель проектирования MVVM.

Теперь у меня проблемы с привязкой 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».

Любая помощь будет принята с благодарностью.

ТИА, Ray

1 Ответ

0 голосов
/ 20 ноября 2018

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>
...