Próbuję użyć WPFToolkit.Wizard w aplikacji korzystającej z modelu projektowego MVVM.
W tej chwili mam trudności z powiązaniem RelayCommand (dziedziczonych po ICommand) z przyciskami Następny/Poprzedni/Zakończ.
Widzę, że czarodziej podnosi wydarzenia, ale to złamałoby paradygmat.
Polecenie jest zdefiniowane:
public ICommand NextStage
{
get
{
return _NextStage ?? (
_NextStage = new RelayCommand(param => PrepNextStep(),
param => Page((PageIndexes)CurrentStage).IsDirty
));
} // get
} // public ICommand NextStage
XAML to:
<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>
Błąd, który jest zgłaszany w czasie wykonywania to:
„Podaj wartość w „System.Windows.Data.Binding” zgłosił wyjątek.' Numer wiersza „33” i pozycja wiersza „25”.
Każda pomoc byłaby bardzo mile widziana.
TIA, Ray.
1 odpowiedź
Next
to zdarzenie, a nie właściwość zależności, którą można powiązać z właściwością źródłową ICommand
.
Możesz dodać odwołanie do System.Windows.Interactivity.dll i użyj wyzwalacza interakcji, aby wywołać polecenie, gdy kreator wywoła zdarzenie:
<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>
Podobne pytania
Nowe pytania
c#
C # (wymawiane „patrz ostro”) jest językiem programowania wysokiego poziomu, statycznie typowanym, wieloparadygmatowym opracowanym przez firmę Microsoft. Kod C # zwykle jest przeznaczony dla rodziny narzędzi Microsoft .NET i czasów wykonywania, do których należą między innymi .NET Framework, .NET Core i Xamarin. Użyj tego tagu w przypadku pytań dotyczących kodu napisanego w C # lub C # formalnej specyfikacji.