我正在尝试在使用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, 雷
答案 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>